[Rpm-maint] Deadlock with rpm 4.4.2.1-rc1

Giulio Eulisse Giulio.Eulisse at cern.ch
Tue Jul 3 16:29:26 UTC 2007


Ciao,
I've compiled my own version of RPM 4.4.2.1 and apt lorg3.2 with a few
additional paches to make sure I can fully relocate the macros and the
rpmrc files so that I'm completely directory indipendent and I can
install packages as a user in any given directory (that's part of my
requirements).
Everything works well enough, but I get occasional deadlocks when
installing a package after having build it with rpmbuild. The actual
lock occurs in:

#0  0xffffe410 in __kernel_vsyscall ()
#1  0x00d42c26 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib/tls/libpthread.so.0
#2  0xf7e64c92 in __db_pthread_mutex_lock_rpmdb (dbenv=0x8082188,
mutexp=0xf7b757f0) at ../db/dist/../mutex/mut_pthread.c:227
#3  0xf7f20441 in __lock_get_internal_rpmdb (lt=0x80825b8, locker=325,
flags=0, obj=0x8082b0c, lock_mode=DB_LOCK_READ, timeout=0,
lock=0x8082b40) at ../db/dist/../lock/lock.c:820
#4  0xf7f1f54d in __lock_get_rpmdb (dbenv=0x8082188, locker=325,
flags=0, obj=0x8082b0c, lock_mode=DB_LOCK_READ, lock=0x8082b40) at
../db/dist/../lock/lock.c:414
#5  0xf7ef2cea in __db_cursor_rpmdb (dbp=0x8082648, txn=0x0,
dbcp=0xffff98dc, flags=0) at ../db/dist/../db/db_iface.c:341
#6  0xf7e944d8 in __ham_open_rpmdb (dbp=0x8082648, txn=0x0,
name=0xffff99a0
"/build/ge/testFoo/slc4_ia32_gcc345/var/lib/rpm/Packages",
base_pgno=0, flags=16) at ../db/dist/../hash/hash_open.c:96
#7  0xf7efae9e in __db_open_rpmdb (dbp=0x8082648, txn=0x0,
fname=0xffff99a0
"/build/ge/testFoo/slc4_ia32_gcc345/var/lib/rpm/Packages", dname=0x0,
type=DB_HASH, flags=16, mode=420, meta_pgno=0)
    at ../db/dist/../db/db_open.c:188
#8  0xf7ef43eb in __db_open_pp_rpmdb (dbp=0x8082648, txn=0x0,
fname=0xffff99a0
"/build/ge/testFoo/slc4_ia32_gcc345/var/lib/rpm/Packages", dname=0x0,
type=DB_HASH, flags=16, mode=420) at ../db/dist/../db/db_iface.c:993
#9  0xf7e646c7 in db3open (rpmdb=0x8081e48, rpmtag=0, dbip=0xffff9afc)
at db3.c:1306
#10 0xf7e58efd in dbiOpen (db=0x8081e48, rpmtag=0, flags=0) at rpmdb.c:300
#11 0xf7e5a86f in openDatabase (prefix=0x80712c0 "/", dbpath=0x0,
_dbapi=3, dbp=0x807d140, mode=0, perms=420, flags=0) at rpmdb.c:1065
#12 0xf7e5aa52 in rpmdbOpen (prefix=0x80712c0 "/", dbp=0x807d140,
mode=0, perms=420) at rpmdb.c:1130
#13 0xf7fae089 in rpmtsOpenDB (ts=0x807d100, dbmode=0) at rpmts.c:182
#14 0xf7f74ebe in rpmtsAddInstallElement (ts=0x807d100, h=0x807d360,
key=0x807dd40, upgrade=1, relocs=0x0) at depends.c:303
#15 0xf7fa2ef4 in rpmInstall (ts=0x807d100, ia=0xf7fd9060,
fileArgv=0x80681a0) at rpminstall.c:574
#16 0x0804baf0 in main (argc=4, argv=0xffff9fb4) at ./rpmqv.c:799

and if I strace the command I actually can see that it tries to open
Packages twice.
Any idea of what might be going wrong?

-- 
Ciao,
Giulio



More information about the Rpm-maint mailing list