pulp_rpm icon indicating copy to clipboard operation
pulp_rpm copied to clipboard

Dependency solving misses packages when copying two RPMs with the same name but different versions

Open ianballou opened this issue 1 year ago • 2 comments

Version

    {
      "name": "[email protected]",
      "last_heartbeat": "2024-09-16T18:08:27.107714Z",
      "versions": {
        "deb": "3.3.1",
        "rpm": "3.27.1",
        "core": "3.58.0",
        "file": "3.58.0",
        "ostree": "2.4.3",
        "python": "3.12.2",
        "ansible": "0.22.1",
        "certguard": "3.58.0",
        "container": "2.21.0"
      }

Describe the bug When copying walrus 5.21 and walrus 0.71 from https://jlsherrill.fedorapeople.org/fake-repos/needed-errata/ into an empty repository with dependency solving enabled, the dependencies of walrus 0.71 do not get copied as well. However, if only copying walrus 0.71, the dependencies do get copied.

To Reproduce Sync https://jlsherrill.fedorapeople.org/fake-repos/needed-errata Copy walrus 0.71 and 5.21 into an empty repo with dependency solving

Expected behavior 'whale' and other deps get copied.

Additional context Tested via Katello on non-standard Pulp versions.

ianballou avatar Sep 16 '24 18:09 ianballou

If you turn on SOLVER_DEBUG_LOGS and then do a dep-solving advanced copy of that repo for both 0.71 and 5.21, you will find the following in the logs:

cannot install both walrus-0:5.21-1.noarch and walrus-0:0.71-1.noarch

It's possible we could consider this a "dependency warning" that should be reflected back in the task-output - currently, it isn't in the list found in _build_warnings()

The question is - has using dep-solving ever found the dependencies of an RPM when multiple versions of that RPM are being copied at the same time?

ggainey avatar Jan 25 '25 20:01 ggainey

The question is - has using dep-solving ever found the dependencies of an RPM when multiple versions of that RPM are being copied at the same time?

It should have, but did it? I don't know. We do have dep solving tests but they are a bit sparse and most assume an empty repo.

dralley avatar Feb 10 '25 19:02 dralley