stuck rpm process on dist upgrade

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm currently performing a dist upgrade to F12 using rpm 4.7.2.
The rpm upgrade process was stuck and I was able
to produce multiple core dumps and compare them.

Here's one of them:
#0  0x0033690e in __read_nocancel () from ./lib/libpthread.so.0
#1  0x003f1c5b in read (cookie=<value optimized out>, buf=<value optimized out>, count=<value optimized out>) at /usr/include/bits/unistd.h:45
#2  fdRead (cookie=<value optimized out>, buf=<value optimized out>, count=<value optimized out>) at rpmio.c:310
#3  0x003f1e20 in ufdRead (cookie=<value optimized out>, buf=<value optimized out>, count=<value optimized out>) at rpmio.c:576
#4  0x0046db71 in _IO_cookie_read () from ./lib/libc.so.6
#5  0x00478cfb in _IO_new_file_underflow () from ./lib/libc.so.6
#6  0x0047c0ba in __underflow () from ./lib/libc.so.6
#7  0x0047c22a in _IO_default_xsgetn_internal () from ./lib/libc.so.6
#8  0x0047a9a8 in _IO_sgetn_internal () from ./lib/libc.so.6
#9  0x0046e03e in fread () from ./lib/libc.so.6
#10 0x003f0742 in fread (buf=<value optimized out>, size=<value optimized out>, nmemb=<value optimized out>, fd=<value optimized out>)
    at /usr/include/bits/stdio2.h:287
#11 Fread (buf=<value optimized out>, size=<value optimized out>, nmemb=<value optimized out>, fd=<value optimized out>) at rpmio.c:1563
#12 0x003fc6e9 in rpmDoDigest (algo=<value optimized out>, fn=<value optimized out>, asAscii=<value optimized out>, 
    digest=<value optimized out>, fsizep=<value optimized out>) at rpmfileutil.c:202
#13 0x006a2476 in handleOverlappedFiles (ts=<value optimized out>, ht=<value optimized out>, p=<value optimized out>, 
    fi=<value optimized out>) at transaction.c:341
#14 0x006a3ca1 in rpmtsPrepare (ts=<value optimized out>) at transaction.c:1066
#15 0x006a4621 in checkProblems (ts=<value optimized out>, okProbs=<value optimized out>, ignoreSet=<value optimized out>)
    at transaction.c:827
#16 rpmtsRun (ts=<value optimized out>, okProbs=<value optimized out>, ignoreSet=<value optimized out>) at transaction.c:1175
#17 0x006930df in rpmcliTransaction (ts=<value optimized out>, ia=<value optimized out>, numPackages=<value optimized out>)
    at rpminstall.c:287
#18 0x00694949 in rpmInstall (ts=<value optimized out>, ia=<value optimized out>, fileArgv=<value optimized out>) at rpminstall.c:518
#19 0x0804ab3b in main (argc=<value optimized out>, argv=<value optimized out>) at rpmqv.c:752

I added debug output before the rpmDoDigest() call in transaction.c
and discovered rpm tried to be very clever:

DEBUG: Before rpmDoDigest with filename: /etc/logrotate.d/cron
DEBUG: Before rpmDoDigest with filename: /etc/cron.daily/0anacron
DEBUG: Before rpmDoDigest with filename: /etc/cron.monthly/0anacron
...
DEBUG: Before rpmDoDigest with filename: /var/named/chroot/dev/null
DEBUG: Before rpmDoDigest with filename: /var/named/chroot/dev/random

-> Compute the digest of /dev/random :o)

Deleting the "random" file before the upgrade solved the issue.

Maybe rpm shouldn't compute digests for special device files?
Strangely /dev/null wasn't a problem.

Cheers,
Thomas
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux