cockpit-project / cockpit

Cockpit is a web-based graphical interface for servers.
http://www.cockpit-project.org/
GNU Lesser General Public License v2.1
11.27k stars 1.12k forks source link

Multiple matches of cockpit-* package #21035

Open leomoty opened 1 month ago

leomoty commented 1 month ago

Explain what happens

Seems to be the same as #8731.

Multiple matches of cockpit-machines;319-1.el9;noarch;copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview

Interestingly dnf update resolves just fine, as I installed with it, and no custom command/enable repos or anything:

 dnf list installed | grep cockpit-machines
cockpit-machines.noarch                       319-1.el9                           @copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview

Also yes, I acknowledge that a regular user will never hit this, at least not with cockpit packages.

Version of Cockpit

322

Where is the problem in Cockpit?

Software updates

Server operating system

other

Server operating system version

Rocky Linux 9.4

What browsers are you using?

Chrome

System log

No response

martinpitt commented 1 month ago

Hey @leomoty ! So the "list" view works, but this happens when you try to install a package? Can you please give me the output of

pkcon resolve --filter newest cockpit-machines

? This isn't quite what the Apps page does, but I didn't figure out how to give more than one filter to the pkcon UI (it's not documented, and no Google hits -- seems it supports just one). I guess that this has more than one result, and I'm interested in how it looks like -- perhaps we can tighten the filter more.

Thanks!

leomoty commented 1 month ago

Hey @leomoty ! So the "list" view works, but this happens when you try to install a package?

Yea, the list seems just fine.

Can you please give me the output of

pkcon resolve --filter newest cockpit-machines
pkcon resolve --filter newest cockpit-machines
Resolving                     [=========================]         
Installed       cockpit-machines-319-1.el9.noarch (installed:copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)      Cockpit user interface for virtual machines
Available       cockpit-machines-319-1.el9.src (copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)   Cockpit user interface for virtual machines
martinpitt commented 1 month ago

Hmm, that actually looks fine -- the real code uses PK.Enum.FILTER_ARCH | PK.Enum.FILTER_NOT_SOURCE | PK.Enum.FILTER_NEWEST | PK.Enum.FILTER_NOT_INSTALLED, so if you do pkcon resolve --filter ~installed cockpit-machines you should not see the "Installed" line again. I was hoping for two "available" lines.

So this is more difficult -- unfortunately the PackageKit API doesn't work well with busctl due to the transient Transaction objects, so this needs some more debugging effort. I'll think about this some more.

If you have a way to reproduce this reliably (we have access to CentOS, RHEL, Fedora, Debian, and Ubuntu), that'd be much appreciated of course.

leomoty commented 1 month ago

If I downgrade cockpit machines to 318, I can replicate the issue again when trying to upgrade to 319:

image

pkcon resolve --filter newest cockpit-machines
Resolving                     [=========================]         
Installed       cockpit-machines-318.1-1.el9.noarch (installed:copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)    Cockpit user interface for virtual machines
Available       cockpit-machines-319-1.el9.noarch (copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)        Cockpit user interface for virtual machines
Available       cockpit-machines-319-1.el9.src (copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)   Cockpit user interface for virtual machines

Also

pkcon resolve --filter ~installed cockpit-machines
Resolving                     [=========================]         
Available       cockpit-machines-318.1-1.el9.noarch (copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)      Cockpit user interface for virtual machines
Available       cockpit-machines-318.1-1.el9.src (copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview) Cockpit user interface for virtual machines
Available       cockpit-machines-319-1.el9.noarch (copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)        Cockpit user interface for virtual machines
Available       cockpit-machines-319-1.el9.src (copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)   Cockpit user interface for virtual machines
Available       cockpit-machines-308.3-1.el9_4.noarch (appstream)               Cockpit user interface for virtual machines
martinpitt commented 1 month ago

A-ha! Do the ".src" ones disappear with pkcon resolve --filter ~source cockpit-machines?

leomoty commented 1 month ago
pkcon resolve --filter ~source cockpit-machines
Resolving                     [=========================]         
Querying                      [=========================]         
Loading cache                 [=========================]         
Installed       cockpit-machines-318.1-1.el9.noarch (installed:copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)    Cockpit user interface for virtual machines
Available       cockpit-machines-319-1.el9.noarch (copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)        Cockpit user interface for virtual machines
Available       cockpit-machines-308.3-1.el9_4.noarch (appstream)               Cockpit user interface for virtual machines

yep, src is gone

martinpitt commented 1 month ago

OK, thanks -- so either packagekit D-Bus API messes up setting multiple filters at once, and it indeed results in more than one result then, or all of the filters still match two results (same version from COPR and the official repos?). I'm not entirely sure how to fix that on the cockpit side, but I'll try to reproduce it next week.

martinpitt commented 3 weeks ago

TBH I'm at loss here. The preview COPR only has version 326, not even sure where the 319 comes from. And packagekit doesn't seem to properly filter on Rocky.

leomoty commented 1 week ago

I can still reproduce it, same thing as before:

pkcon resolve --filter ~source cockpit-machines
Resolving                     [=========================]         
Installed       cockpit-machines-321-1.el9.noarch (installed:copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)      Cockpit user interface for virtual machines
Available       cockpit-machines-322-1.el9.noarch (copr:copr.fedorainfracloud.org:group_cockpit:cockpit-preview)        Cockpit user interface for virtual machines
Available       cockpit-machines-308.3-1.el9_4.noarch (appstream)               Cockpit user interface for virtual machines

not sure if I can help in any way