Bug 1142489

Summary: Can't do some yum transactions on rawhide (TypeError/python RPMTransaction callback).
Product: [Fedora] Fedora Reporter: James Antill <james.antill>
Component: python-urlgrabberAssignee: Valentina Mukhamedzhanova <vmukhame>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: admiller, jzeleny, ktmdms, novyjindrich, rvokal, tradej, vmukhame
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-urlgrabber-3.10.1-6.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-07-19 12:08:28 UTC Type: Bug
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
strace of a failing yum attempt
none
yum update log for package that was erroring using yum 4.12.0.2
none
strace of failed "sed" update. none

Description James Antill 2014-09-16 21:30:27 UTC
Description of problem:

 Since upgrading rpm today I now can't run certain upgrade transactions. All erase transaction I've tried have worked, and a couple of upgrade transaction have as well ... but some just say (can't copy and paste due to VM, but roughly):

Running transaction test
Type Error: an integer is required
FATAL ERROR: python callback <boundmethod RPMTransaction.callback of <yum.rpmtrans.RPMTransaction instance 0xblah>> failed, aborting!

...this is reproducible on the packages it happens on (Eg. upgrading pyliblzma fails everytime) but I have managed to upgrade some other packages. I'm assuming it's not yum's fault because of how little yum is changing in comparison to rpm atm.

Version-Release number of selected component (if applicable):

4.12.0-0.rc1.2

Comment 1 Panu Matilainen 2014-09-22 12:53:18 UTC
Also seen here: https://lists.fedoraproject.org/pipermail/test/2014-September/122759.html

I haven't seen this myself, nor am I able to reproduce it so its a bit of a mystery.

Comment 2 Panu Matilainen 2014-09-22 13:13:26 UTC
BTW, there have been similar reports long before this:
http://stackoverflow.com/questions/9009776/yum-install-of-home-made-rpm-giving-error
https://bugzilla.redhat.com/show_bug.cgi?id=652702

Can't think of any particular change in rpm that would now cause such issues but then you never know...

Since you can actually reproduce it, more information would not hurt.
For example a strace of the failure, log with --rpmverbosity=debug and you could try adding a bit of additional debugging into yum's callback to see whats going on in there. 'script' is handy for grabbing output from "a copy-paste limited" environment.

Comment 3 kevin martin 2014-09-24 16:36:33 UTC
 here's one that fails consistently with this error (i've attached the strace output log):

sudo strace -o strace_yum_failing_update.log yum --releasever=rawhide --rpmverbosity=debug --disablerepo=*rpmfusion* --skip-broken --nogpgcheck -y  update plexus-containers-component-javadoc
Loaded plugins: auto-update-debuginfo, fastestmirror
Loading mirror speeds from cached hostfile
 * rawhide: mirrors.mit.edu
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
--> Running transaction check
---> Package plexus-containers-component-javadoc.noarch 0:1.5.5-17.fc21 will be updated
---> Package plexus-containers-component-javadoc.noarch 0:1.5.5-18.fc21 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================= Package                                        Arch              Version                     Repository          Size
=======================================================================================================================Updating:
 plexus-containers-component-javadoc            noarch            1.5.5-18.fc21               rawhide             19 k

Transaction Summary
=======================================================================================================================Upgrade  1 Package

Total download size: 19 k
Downloading packages:
Finishing delta rebuilds of 1 package(s) (19 k)
Some delta RPMs failed to download or rebuild. Retrying..
plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm                                    |  19 kB  00:00:00
Running transaction check
Running transaction test
TypeError: an integer is required
FATAL ERROR: python callback <bound method RPMTransaction.callback of <yum.rpmtrans.RPMTransaction instance at 0x7fbf22a453f8>> failed, aborting!

Comment 4 kevin martin 2014-09-24 16:39:21 UTC
Created attachment 940828 [details]
strace of a failing yum attempt

Comment 5 kevin martin 2014-09-24 19:24:14 UTC
perhaps the issue is bad packages.  I tried the update of the plexus-containers-component-javadoc with dnf and got this result:

sudo dnf --releasever=rawhide --disablerepo=*rpmfusion*  --nogpgcheck  upgrade plexus-containers-component-javadoc
Dependencies resolved.
=======================================================================================================================
 Package                                        Arch              Version                     Repository          Size
=======================================================================================================================
Upgrading:
 plexus-containers-component-javadoc            noarch            1.5.5-18.fc21               rawhide             19 k
Transaction Summary
=======================================================================================================================
Upgrade  1 Package
Total download size: 19 k
Is this ok [y/N]: y
Downloading Packages:
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Curl error: Access denied to remote resource for ftp://mirror.uoregon.edu/fedora/development/rawhide/x86_64/os/Packages/p/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Status code: 416 for http://mirror.clarkson.edu/fedora/linux/development/rawhide/x86_64/os/Packages/p/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Curl error: Timeout was reached for ftp://fedora.mirror.iweb.com/development/rawhide/x86_64/os/Packages/p/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm
plexus-containers-component-javadoc-1.5.  0% [                                       ] 4.7 kB/s |   0  B     00:04 ETA
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Curl error: Timeout was reached for ftp://ftp.cogeco.net/fedora/linux/development/rawhide/x86_64/os/Packages/p/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[FAILED] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: No more mirrors to try - All mirrors were already tried without success
Error: Error downloading packages:
  Cannot download Packages/p/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: All mirrors were tried

Comment 6 Panu Matilainen 2014-09-25 07:51:45 UTC
James, take a look at the strace from comment #4. Yum is doing something bizarre here. Starting at line 216826:

stat("/var/cache/yum/x86_64/rawhide/rawhide/packages/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm", {st_mode=S_IFREG|0644, st_size=19644, ...}) = 0
open("/var/cache/yum/x86_64/rawhide/rawhide/packages/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm", O_RDONLY) = 12
fstat(12, {st_mode=S_IFREG|0644, st_size=19644, ...}) = 0
fstat(12, {st_mode=S_IFREG|0644, st_size=19644, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fbf37501000
read(12, "\355\253\356\333\3\0\0\0\0\377plexus-containers-comp"..., 65536) = 19644
read(12, "", 45056)                     = 0
read(12, "", 65536)                     = 0
close(12)                               = 0
munmap(0x7fbf37501000, 4096)            = 0
stat("/var/cache/yum/x86_64/rawhide/rawhide/packages/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm", {st_mode=S_IFREG|0644, st_size=19644, ...}) = 0
unlink("/var/cache/yum/x86_64/rawhide/rawhide/packages/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm") = 0

It has the package it wants... and then it goes and unlinks it. Shortly after that (line 216853 onwards) it notices it doesn't have that package, and proceeds to download its HEADER instead of the package:

stat("/var/cache/yum/x86_64/rawhide/rawhide/packages/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm", 0x7fffd8ed1c10) = -1 ENOENT (No such file or directory)
stat("/var/cache/yum/x86_64/rawhide/rawhide/headers/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.hdr", {st_mode=S_IFREG|0644, st_size=6860, ...}) = 0
open("/var/cache/yum/x86_64/rawhide/rawhide/headers/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.hdr", O_RDONLY) = 5
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
read(5, "\216\255\350\1\0\0\0\0\0\0\0009\0\0\27,", 16) = 16
read(5, "\0\0\0?\0\0\0\7\0\0\27\34\0\0\0\20\0\0\0d\0\0\0\10\0\0\0\0\0\0\0\1"..., 6844) = 6844
read(5, "", 16)                         = 0
close(5)                                = 0
stat("/var/cache/yum/x86_64/rawhide/rawhide/headers/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.hdr", {st_mode=S_IFREG|0644, st_size=6860, ...}) = 0
open("/var/cache/yum/x86_64/rawhide/rawhide/headers/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.hdr", O_RDONLY) = 5
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
read(5, "\216\255\350\1\0\0\0\0\0\0\0009\0\0\27,", 16) = 16
read(5, "\0\0\0?\0\0\0\7\0\0\27\34\0\0\0\20\0\0\0d\0\0\0\10\0\0\0\0\0\0\0\1"..., 6844) = 6844
read(5, "", 16)                         = 0
close(5)                                = 0
openat(AT_FDCWD, "/usr/lib64/rpm-plugins", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5

So we deleted the package which was already on disk, downloaded its header instead and now the transaction is starting. And when we get down to it:

open("/var/cache/yum/x86_64/rawhide/rawhide/packages/plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm", O_RDONLY) = -1 ENOENT (No such file or directory)

Shockingly, the non-existent file cannot be opened by the callback, and instead of an file descriptor number, something else gets passed to the callback and "Type Error: an integer is required" exception occurs. 

I fail to see how the botched download logic could be rpms fault, reassigning to yum.

Comment 7 Panu Matilainen 2014-09-25 08:24:37 UTC
(In reply to Panu Matilainen from comment #6)
> I fail to see how the botched download logic could be rpms fault,
> reassigning to yum.

Unless its related to bug 1142949, that is. In other words, rpm 4.12.0 and pre-releases had a bug which causes archive size in header to be short of the real size cpio trailer size (approx). 

So if the archive size from header gets used in the download logic (which doesn't seem entirely unlikely, considering...), that could be what throws it onto some strange path.

Comment 8 Panu Matilainen 2014-09-25 08:29:30 UTC
(In reply to Panu Matilainen from comment #7)
> a bug which causes archive size in header to be short of
> the real size cpio trailer size (approx). 

"short of the real size by cpio trailer size (approx)" I mean. -ENEEDMORECOFFEE

Comment 9 kevin martin 2014-09-25 12:34:55 UTC
the version of rpm that I'm using is:

Name        : rpm
Version     : 4.12.0.1
Release     : 1.fc22
Architecture: x86_64
Install Date: Tue 23 Sep 2014 04:56:46 PM CDT
Group       : System Environment/Base
Size        : 1967137
License     : GPLv2+
Signature   : (none)
Source RPM  : rpm-4.12.0.1-1.fc22.src.rpm
Build Date  : Thu 18 Sep 2014 06:38:52 AM CDT
Build Host  : buildvm-03.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.rpm.org/
Summary     : The RPM package management system


Is there a newer version as it doesn't ever come up for update when I do a yum or dnf update/upgrade.

Comment 10 kevin martin 2014-09-25 12:57:09 UTC
Created attachment 941074 [details]
yum update log for package that was erroring using yum 4.12.0.2

My apologies, found a newer version in koji (4.12.0.2) that appears to correct this problem, as shown below:

Should I be concerned that dnf seems to never be able to download this file with the correct checksum and/or should I file a bugzilla against dnf as a result or is dnf correct that the package is not good and shouldn't be downloaded for updating?

[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)
[MIRROR] plexus-containers-component-javadoc-1.5.5-18.fc21.noarch.rpm: Downloading successfull, but checksum doesn't match. Expected: 44ab67e66e3babdb8b5878343db9bfabd6e05369f2f39b9f61939020fc0ba8b1(sha256)

Comment 11 Panu Matilainen 2014-09-25 15:48:09 UTC
Updating to rpm 4.12.0.1 will NOT make any difference to a failing update in itself, the archive size issue is a build-time bug affecting package generation. Packages *build with* 4.12.0.1 would not have the archive size mismatch, but then it might not have anything to do with this issue. I only said it *might*.

Comment 12 kevin martin 2014-10-01 15:03:40 UTC
Created attachment 943100 [details]
strace of failed "sed" update.

Comment 13 kevin martin 2014-10-01 15:09:03 UTC
rpm 4.12.0.2 is also not the answer.  The error continues...

--------------------------------------------------------------------------------
Total                                                                           
TypeError: an integer is required
FATAL ERROR: python callback <bound method RPMTransaction.callback of <yum.rpmtrans.RPMTransaction instance at 0x7fcfa3b88200>> failed, aborting!


I narrowed the problem down to the "sed" rpm and have attached an strace output for where I try to update just that package.  dnf upgrade of sed gives errors with:

Downloading Packages:
[MIRROR] sed-4.2.2-9.fc22.x86_64.rpm: Downloading successfull, but checksum doesn't match. Expected: a0d11a1bf01dca381a9dfb4327b590f2422fdddb2b09dd8a805be0857e1c0d2b(sha256)
[MIRROR] sed-4.2.2-9.fc22.x86_64.rpm: Downloading successfull, but checksum doesn't match. Expected: a0d11a1bf01dca381a9dfb4327b590f2422fdddb2b09dd8a805be0857e1c0d2b(sha256)
[MIRROR] sed-4.2.2-9.fc22.x86_64.rpm: Downloading successfull, but checksum doesn't match. Expected: a0d11a1bf01dca381a9dfb4327b590f2422fdddb2b09dd8a805be0857e1c0d2b(sha256)

and yet if I go find the package on pbone and download it via firefox the sha256sum is correct and dnf will allow me to upgrade sed from the downloaded package with no issues.

Comment 14 Panu Matilainen 2014-10-02 07:15:44 UTC
This is unlikely to get fixed accidentally, so do expect a notification if the issue is found and fixed.

Anyway, the sed-update strace shows the same story, stuff gets done, then the package gets unlinked from download cache, a header is passed into the transaction, and then the transaction callback fails. However on a second look these have something in common I missed on the first round:

1) initially the package is not there:
stat("/var/cache/yum/x86_64/rawhide/rawhide/packages/sed-4.2.2-9.fc22.x86_64.rpm", 0x7fff7771dac0) = -1 ENOENT (No such file or directory)

2) then we got fetched the and constructed the package
open("/var/cache/yum/x86_64/rawhide/rawhide/packages/sed-4.2.2-8.fc22_4.2.2-9.fc22.x86_64.drpm", O_RDONLY) = 5
[...]
write(1, "Finishing delta rebuilds of 1 pa"..., 49) = 49
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 9642
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=9642, si_uid=0, si_status=0, si_utime=13, si_stime=1} ---
stat("/var/cache/yum/x86_64/rawhide/rawhide/packages/sed-4.2.2-9.fc22.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=241328, ...}) = 0

3) However this seems suspecious: it thinks the build from delta was not successful (this being the only package being processed), and after some further processing, it goes ahead and unlinks the package that just was constructed (and okay, if the build was unsuccessful so should it):
write(1, "Some delta RPMs failed to downlo"..., 58) = 58
...
stat("/var/cache/yum/x86_64/rawhide/rawhide/packages/sed-4.2.2-9.fc22.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=242432, ...}) =
 0
unlink("/var/cache/yum/x86_64/rawhide/rawhide/packages/sed-4.2.2-9.fc22.x86_64.rpm") = 0

4) At this point, it enters the path that will lead to the error from the transaction callback: it starts downloading package header when it should just pull the full package since deltra rebuild failed.
stat("/var/cache/yum/x86_64/rawhide/rawhide/packages/sed-4.2.2-9.fc22.x86_64.rpm", 0x7fff7771dcc0) = -1 ENOENT (No such file or directory)
stat("/var/cache/yum/x86_64/rawhide/rawhide/headers/sed-4.2.2-9.fc22.x86_64.hdr", {st_mode=S_IFREG|0644, st_size=18972, ...}) = 0
open("/var/cache/yum/x86_64/rawhide/rawhide/headers/sed-4.2.2-9.fc22.x86_64.hdr", O_RDONLY) = 5

5) And here we are inside the transaction callback opening a file which does not exist, which will cause it to blow up:
write(22, "D: 0x00000809     4096       521"..., 54) = 54
write(22, "D: ========== +++ sed-4.2.2-9.fc"..., 52) = 52
open("/var/cache/yum/x86_64/rawhide/rawhide/packages/sed-4.2.2-9.fc22.x86_64.rpm", O_RDONLY) = -1 ENOENT (No such file or directory)
[...]
write(2, "TypeError", 9)                = 9
write(2, ": ", 2)                       = 2
write(2, "an integer is required", 22)  = 22
write(2, "\n", 1)                       = 1
write(2, "FATAL ERROR: python callback <bo"..., 146) = 146

In summary, based on these two straces it seems that deltarpms are involved in the failure - delta rebuild fails, perhaps in some new way, and throws yum to some strange path where it starts dealing with package headers instead of actual packages, which then causes the fail. The delta rebuild failure *could* be caused by the rpm build bug wrt archive size (which could explain a new strange error path) but that's just a theory.

If its indeed deltarpm-related, then --setopt=deltarpm=0 should work around the problem.

Comment 15 Panu Matilainen 2014-10-02 11:31:07 UTC
Plot thickens...

http://koji.fedoraproject.org/koji/rpminfo?rpmID=5486938 notes reports sed-4.2.2-9.fc22.x86_64.rpm package size 241328, which matches the actual file https://kojipkgs.fedoraproject.org//packages/sed/4.2.2/9.fc22/x86_64/sed-4.2.2-9.fc22.x86_64.rpm

The corresponding deltarpm from http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/drpms/sed-4.2.2-8.fc22_4.2.2-9.fc22.x86_64.drpm agrees:
[pmatilai@localhost tmp]$ applydeltarpm -i sed-4.2.2-8.fc22_4.2.2-9.fc22.x86_64.drpm|grep "target size"
target size: 241328
[pmatilai@localhost tmp]$

However when you look up the actual repodata, ie http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/repodata/a0b9c389a006ee9ea9328335aed3ecf1a9c99c62aed28a6e380dd09e83cb764e-primary.xml.gz as of today:

  <name>sed</name>
  <arch>x86_64</arch>
  <version epoch="0" ver="4.2.2" rel="9.fc22"/>
  <checksum type="sha256" pkgid="YES">a0d11a1bf01dca381a9dfb4327b590f2422fdddb2b09dd8a805be0857e1c0d2b</checksum>
  <summary>A GNU stream text editor</summary>
  <description>The sed (Stream EDitor) editor is a stream or batch (non-interactive)
editor.  Sed takes text as input, performs an operation or set of
operations on the text and outputs the modified text.  The operations
that sed performs (substitutions, deletions, insertions, etc.) can be
specified in a script file or from the command line.</description>
  <packager>Fedora Project</packager>
  <url>http://sed.sourceforge.net/</url>
  <time file="1408632161" build="1408380126"/>
  <size package="242432" installed="605545" archive="613199"/>
                 ^^^^^^

The package from http://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/Packages/s/sed-4.2.2-9.fc22.x86_64.rpm matches this. The difference between koji and rawhide is that the rawhide package is signed. However the deltarpm has been created against an unsigned package, so mismatch is to be expected. And THAT is why the delta application fails in these cases, AFAICS: it seems that rawhide is getting signed nowadays, but the deltarpm generation occurs before signing.

All this still does not explain why yum decides to download headers in these cases - I was able to reproduce the deltarpm failure but not the header download and consequent crash in the callback. This is what I see:
[root@localhost ~]# rpm -q sed
sed-4.2.2-8.fc22.x86_64
[root@localhost ~]# yum -y update sed
Loaded plugins: langpacks, tsflags
Resolving Dependencies
--> Running transaction check
---> Package sed.x86_64 0:4.2.2-8.fc22 will be updated
---> Package sed.x86_64 0:4.2.2-9.fc22 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package       Arch             Version                 Repository         Size
================================================================================
Updating:
 sed           x86_64           4.2.2-9.fc22            rawhide           237 k

Transaction Summary
================================================================================
Upgrade  1 Package

Total download size: 237 k
Downloading packages:
Finishing delta rebuilds of 1 package(s) (237 k)
Some delta RPMs failed to download or rebuild. Retrying..
sed-4.2.2-9.fc22.x86_64.rpm    FAILED                                          
ftp://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/linux/development/rawhide/x86_64/os/Packages/s/sed-4.2.2-9.fc22.x86_64.rpm: [Errno -1] Package does not match intended download. Suggestion: run yum --enablerepo=rawhide clean metadata and try again
Trying other mirror.
sed-4.2.2-9.fc22.x86_64.rpm                                 | 237 kB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction (shutdown inhibited)
Warning: RPMDB altered outside of yum.
  Updating   : sed-4.2.2-9.fc22.x86_64                                      1/2 
  Cleanup    : sed-4.2.2-8.fc22.x86_64                                      2/2 
  Verifying  : sed-4.2.2-9.fc22.x86_64                                      1/2 
  Verifying  : sed-4.2.2-8.fc22.x86_64                                      2/2 

Updated:
  sed.x86_64 0:4.2.2-9.fc22                                                     

Complete!
[root@localhost ~]#

Comment 16 Panu Matilainen 2014-10-02 11:59:47 UTC
.....aaaaaaand we have a winner, python-urlgrabber >= 3.10.1-3 is fubar'ed. The above, successful update (despite drpm fail) is with python-urlgrabber-3.10.1-2, 3.10.1-3 blows up with a different traceback and with python-urlgrabber >= 3.10.1-4 I get:

Some delta RPMs failed to download or rebuild. Retrying..
sed-4.2.2-9.fc22.x86_64.rpm                                 | 237 kB  00:00     
Running transaction check
Running transaction test
TypeError: an integer is required
FATAL ERROR: python callback <bound method RPMTransaction.callback of <yum.rpmtrans.RPMTransaction instance at 0x7f496e2f1830>> failed, aborting!

...and downgrading to 3.10.1-2 makes it work again. Switching to python-urlgrabber and resigning myself from this investigation, rpm does not appear to be related to any of this.

Comment 17 Valentina Mukhamedzhanova 2014-10-02 15:17:20 UTC
Panu, thanks for the thorough investigation!

Comment 18 kevin martin 2014-10-03 21:10:52 UTC
updated my python-urlgrabber from koji and it does indeed appear to correct the problem.  Thanks.

Comment 19 Jaroslav Reznik 2015-03-03 17:15:39 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle.
Changing version to '22'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22

Comment 20 Fedora End Of Life 2016-07-19 12:08:28 UTC
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.