Bug 508505

Summary: multiple versions of a package are checked by default for update installation, causing failure
Product: [Fedora] Fedora Reporter: David Timms <dtimms>
Component: gnome-packagekitAssignee: Richard Hughes <rhughes>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 11CC: rhughes, richard
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 2.27.3-1.fc11 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-07-16 07:24:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
example of multiple versions of a package checked for update
none
test patch none

Description David Timms 2009-06-28 00:39:39 UTC
Created attachment 349683 [details]
example of multiple versions of a package checked for update

Description of problem:
If a repo contains multiple versions of the same package, g-pk shows all the versions, and all are already checked. If this is in a big list of packages, the user doesn't notice the reason that leads to the issue

Version-Release number of selected component (if applicable):
gnome-packagekit-2.27.2-1.fc11.i586

How reproducible:
Pre: have at least one repo that has multiple versions of a single package.

Steps to Reproduce:
1. g-pk: show updates
2. package in question is listed 3x times, all 3 are checked.
3. install updates
  
Actual results:
running...resolving...downloading...
Error:
The package download failed.
Please check your network connectivity.
Errors were encountered while downloading packages.
timmsy-lean-font-0.0.6-11.2.i586: failure: timmsy-lean-font-0.0.6-11.2.i586.rpm from timmsy: (256, 'No more mirrors to try.')

Expected results:
1. g-pk should show all available versions of updates, but
2. only the latest/highest version should be checked for installation.
3. given that the package is downloadable, why is the download failing (is it an uncaught case from 1/2 above ?)

Additional info:
The package in question has only obsoletes in it, no code, perhaps that screws with pk's understanding of evr.
http://members.iinet.net.au/~timmsy/timmsyrepo/
createrepo was run on the folder that has all the packages in it.

Additionally:
a) If only the older of the two packages is selected, the download fails.

b) If the newest (higher evr) package is selected, the changelog is not shown, whereas it is shown if the earliest nvr is selected.

c) if manually select newest and install, it succeeds.

d) It would make sense to order the found packages within the name/description sorting as alphabetically ascending for package name, and then newest (highest) first when there is multiple versions of a specific found/showing.

Comment 1 Richard Hughes 2009-06-28 08:07:26 UTC
What's the output of "pkcon get-updates" and "pkcon get-updates --filter=newest" please?

Thanks.

Comment 2 David Timms 2009-06-28 21:54:22 UTC
(In reply to comment #1)
> What's the output of "pkcon get-updates" and "pkcon get-updates
> --filter=newest" please?

# pkcon get-updates
normal  timmsy-lean-font-0.0.6-11.4        timmsy's lean machine
    font package removals
normal  timmsy-lean-bluetooth-0.0.6-11.2   timmsy's lean machine
    bluetooth package removals
normal  timmsy-lean-bluetooth-0.0.6-11.3   timmsy's lean machine
    bluetooth package removals
normal  timmsy-media-0.0.6-11.4            timmsy's favourite
    media manipulator packages
normal  timmsy-lean-bluetooth-0.0.6-11.1   timmsy's lean machine
    bluetooth package removals
normal  timmsy-lean-x-0.0.6-11.4           timmsy's lean machine
    package removal x drivers
normal  timmsy-lean-bluetooth-0.0.6-11.4   timmsy's lean machine
    bluetooth package removals

# pkcon get-updates --filter=newest
normal  timmsy-lean-font-0.0.6-11.4        timmsy's lean machine 
    font package removals
normal  timmsy-lean-bluetooth-0.0.6-11.2   timmsy's lean machine
    bluetooth package removals
normal  timmsy-lean-bluetooth-0.0.6-11.3   timmsy's lean machine
    bluetooth package removals
normal  timmsy-media-0.0.6-11.4            timmsy's favourite media
    manipulator packages
normal  timmsy-lean-bluetooth-0.0.6-11.1   timmsy's lean machine 
    bluetooth package removals
normal  timmsy-lean-x-0.0.6-11.4           timmsy's lean machine 
    package removal x drivers
normal  timmsy-lean-bluetooth-0.0.6-11.4   timmsy's lean machine 
    bluetooth package removals

[above responses have had " " added/removed for clarity]
ps. the url I gave has an extra version now as well, so now 4x are checked by default. eg: timmsy-media has been updated; checking only it causes trouble with unable to download rpm - no more mirrors to try; this packages has only requires in it.

Comment 3 Richard Hughes 2009-06-29 11:44:16 UTC
(In reply to comment #2)
> # pkcon get-updates --filter=newest
> normal  timmsy-lean-font-0.0.6-11.4        timmsy's lean machine 
>     font package removals
> normal  timmsy-lean-bluetooth-0.0.6-11.2   timmsy's lean machine
>     bluetooth package removals
> normal  timmsy-lean-bluetooth-0.0.6-11.3   timmsy's lean machine
>     bluetooth package removals
> normal  timmsy-media-0.0.6-11.4            timmsy's favourite media
>     manipulator packages
> normal  timmsy-lean-bluetooth-0.0.6-11.1   timmsy's lean machine 
>     bluetooth package removals
> normal  timmsy-lean-x-0.0.6-11.4           timmsy's lean machine 
>     package removal x drivers
> normal  timmsy-lean-bluetooth-0.0.6-11.4   timmsy's lean machine 
>     bluetooth package removals

Okay, that's odd. The newest filter should have removed timmsy-lean-bluetooth-0.0.6-11.2 from the list. I guess it's failing as timmsy-lean-bluetooth-0.0.6-11.2 is listed before timmsy-lean-bluetooth-0.0.6-11.3, and the newest check is sequential. Let me russle up a patch for you to test.

Comment 4 Richard Hughes 2009-06-29 11:45:56 UTC
Created attachment 349771 [details]
test patch

Can you try this patch please. To apply, just do:

cd /usr/share/PackageKit/helpers/yum/
sudo patch -p0 < /home/hughsie/Desktop/yum-filter.patch

and then please attach the output of:

./yumBackend.py get-updates none

Thanks.

Comment 5 David Timms 2009-07-05 07:27:47 UTC
Hi Richard, (been away), here is the result of patched version as requested:
# cd /usr/share/PackageKit/helpers/yum/
# sudo patch -p0 </home/davidt/dev/bugz/yum-filter.patch 
patching file yumFilter.py
# ./yumBackend.py get-updates none
Error: No NETWORK envp
Loaded plugins: presto
No plugin match for: rpm-warm-cache
No plugin match for: remove-with-leaves
allow-cancel	false
allow-cancel	true
status	info
package	normal	timmsy-lean-font;0.0.6-11.4;i586;timmsy	timmsy's lean machine font package removals
package	normal	timmsy-lean-bluetooth;0.0.6-11.2;i586;timmsy	timmsy's lean machine bluetooth package removals
package	normal	timmsy-lean-bluetooth;0.0.6-11.3;i586;timmsy	timmsy's lean machine bluetooth package removals
package	normal	timmsy-media;0.0.6-11.4;i586;timmsy	timmsy's favourite media manipulator packages
package	normal	timmsy-lean-bluetooth;0.0.6-11.1;i586;timmsy	timmsy's lean machine bluetooth package removals
package	normal	timmsy-lean-x;0.0.6-11.4;i586;timmsy	timmsy's lean machine package removal x drivers
package	normal	timmsy-lean-bluetooth;0.0.6-11.4;i586;timmsy	timmsy's lean machine bluetooth package removals
finished

Comment 6 Richard Hughes 2009-07-05 08:11:34 UTC
Cool, that's working nicely. Can I please now get the output of:

./yumBackend.py get-updates newest

And then we can ensure we only get the newest entry.

I've also patched gnome-packagekit to use newest when getting the update list upstream too.

Comment 7 David Timms 2009-07-05 15:07:37 UTC
(In reply to comment #6)
> Cool, that's working nicely. Can I please now get the output of:
> ./yumBackend.py get-updates newest
# ./yumBackend.py get-updates newest
Error: No NETWORK envp
Loaded plugins: presto
No plugin match for: rpm-warm-cache
No plugin match for: remove-with-leaves
allow-cancel	false
allow-cancel	true
status	info
package	normal	timmsy-lean-font;0.0.6-11.4;i586;timmsy	timmsy's lean machine font package removals
package	normal	timmsy-lean-bluetooth;0.0.6-11.4;i586;timmsy	timmsy's lean machine bluetooth package removals
package	normal	timmsy-media;0.0.6-11.4;i586;timmsy	timmsy's favourite media manipulator packages
package	normal	timmsy-lean-x;0.0.6-11.4;i586;timmsy	timmsy's lean machine package removal x drivers
finished

Note: the prompt did not return to the # prompt when this completed. This also occurred with the previous test you got me to run. I don't know if it means anything. Just hitting enter causes the prompt to be written.

> And then we can ensure we only get the newest entry.
That would seem to be successful, current highest version is -11.4 and now only that version is listed.

Comment 8 Richard Hughes 2009-07-06 06:47:13 UTC
(In reply to comment #7)
> Note: the prompt did not return to the # prompt when this completed. This also
> occurred with the previous test you got me to run. I don't know if it means
> anything. Just hitting enter causes the prompt to be written.

Yes, expected, it's waiting for new input.

> > And then we can ensure we only get the newest entry.
> That would seem to be successful, current highest version is -11.4 and now only
> that version is listed.  

Superb. New release upstream today, so should be in rawhide by later tomorrow. Do you want a F11 backport?

Comment 9 Fedora Update System 2009-07-06 12:34:35 UTC
gnome-packagekit-2.27.3-1.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/gnome-packagekit-2.27.3-1.fc11

Comment 10 David Timms 2009-07-07 13:22:48 UTC
Re: bodhi comment: 2009-07-06 22:05:10:
So I get the error:
-----
Errors were encountered while downloading packages.
timmsy-lean-font-0.0.6-11.4.i586: failure: timmsy-lean-font-0.0.6-11.4.i586.rpm from timmsy: (256, 'No more mirrors to try.')
timmsy-lean-x-0.0.6-11.4.i586: failure: timmsy-lean-x-0.0.6-11.4.i586.rpm from timmsy: (256, 'No more mirrors to try.')
-----
This is with the 2 new packages from 11 testing-to-be.

Packet capture shows that in fact both packages were retrieved from the one and only URL in the .repo config (x ten times).

I used firefox to download eg:
http://members.iinet.net.au/~timmsy/timmsyrepo/timmsy-lean-x-0.0.6-11.4.i586.rpm
then clicking on the link. I get the unsigned warning, and then gpk crashes (dbus problem) (I have the trace http://fpaste.org/paste/17741 ). rpm -Kv on the file says:
    Header SHA1 digest: OK (87b5f11e3eb959af5dab92b03824e713bed3bee0)
    MD5 digest: OK (48f44c096ffd80b3a2f23841a4bfc435)

Since I can't tell if that is due to changes introduced in this fix, or perhaps with virtual provides packages etc, would you like a separate bug for that ?

Comment 11 David Timms 2009-07-07 13:54:38 UTC
yum update timmsy-lean-x gives:
=====
Running "predownload" handler for "presto" plugin
Setting up and reading Presto delta metadata
No Presto metadata available for timmsy
Processing delta metadata
No delta information for repository timmsy.
Package(s) data still to download: 4.2 k
timmsy-lean-x-0.0.6-11.4.i586.rpm                        | 4.2 kB     00:00     
http://members.iinet.net.au/%7Etimmsy/timmsyrepo/timmsy-lean-x-0.0.6-11.4.i586.rpm: (-1, u'Package does not match intended download')
Trying other mirror.
Running "postdownload" handler for "downloadonly" plugin


Error Downloading Packages:
  timmsy-lean-x-0.0.6-11.4.i586: failure: timmsy-lean-x-0.0.6-11.4.i586.rpm from timmsy: (256, 'No more mirrors to try.')
=====
So while the rpm download is complete (eg yum localinstall it.rpm --nogpgcheck works), the repodata on the web server must differ, or I'm triggering a bug in yum/createrepo.
Note that comparing sha256sum of repodata/* retrieved from the server v what was created locally and sent to the server shows the repodata is the correct version and wasn't corrupted in transfer.

I'm going to createrepo and upload again to see if it makes any difference.

Comment 12 David Timms 2009-07-07 14:16:34 UTC
(In reply to comment #10)
> Errors were encountered while downloading packages.
> timmsy-lean-font-0.0.6-11.4.i586: failure: timmsy-lean-font-0.0.6-11.4.i586.rpm
> from timmsy: (256, 'No more mirrors to try.')
> timmsy-lean-x-0.0.6-11.4.i586: failure: timmsy-lean-x-0.0.6-11.4.i586.rpm from
> timmsy: (256, 'No more mirrors to try.')
> -----
Rerunning createrepo and uploading to my repo fixed the issue with the download.
Consider the download part of this bug to be packager (my) error ;-) 

However, could gpk could provide more definitive error in this case:
The current error sounds like gpk was getting 404 errors when trying to download the file, which is not the case (it actually successfully download the named rpm ten times (good thing it wasn't a 50MB rpm)).

maybe more like:
[maybe in advanced expander]
"A package of the correct name was downloaded from the repo, but the package contents (or whatever check failed) does not match information about the package from the current repository metadata: `shasum 1` v `shasum 2`. 
The repository or mirror may be partially out of date, or it could indicate tampering/corruption of the package contents."

Might help to reduce mess ups like mine.

Comment 13 Fedora Update System 2009-07-11 17:25:45 UTC
gnome-packagekit-2.27.3-1.fc11 has been pushed to the Fedora 11 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update gnome-packagekit'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-7497

Comment 14 Fedora Update System 2009-07-16 07:23:52 UTC
gnome-packagekit-2.27.3-1.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.