[Rpm-maint] Deadlock with rpm 4.4.2.1-rc1

Panu Matilainen pmatilai at laiskiainen.org
Tue Jul 3 19:50:29 UTC 2007


On Tue, 3 Jul 2007, Giulio Eulisse wrote:

> 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?

Yeah, a stupid thinko by yours truly and already fixed. I'll probably make 
rc2 tomorrow for this and a few other (but less nasty) bugs, but if you 
need it immediately, here's the patch: 
http://hg.rpm.org/rpm?cs=7ca081cd83d8;style=raw

 	- Panu -





More information about the Rpm-maint mailing list