On 4/13/05, John Newbigin jnewbigin@ict.swin.edu.au wrote:
My final script for anyone who might need it is:
#!/bin/bash unset LANG export LD_ASSUME_KERNEL=2.2.5 rpm -qa | wc --lines rm -rf /var/lib/rpm/__db.00? rpm --define '__dbi_rebuild nofsync !log !txn !cdb !thread' --rebuilddb unset LD_ASSUME_KERNEL rpm -qa | wc --lines rpm --rebuilddb rpm -qa | wc --lines
Note: Watch out for the ! characters.
John,
What are you doing that causes the corruption? Can you recreate. I have test harness for rpm and I have ran thousands perhaps tens of thousands of rpm transactions with it and have not seen this corruptions. I am reading you right that your turning off nptl by doing the LD_ASSUME_KERNEL stuff and turning off threads in use in rpm when doing the rebuild?
I do know of a deadlock issue with scriptlets do an incorrect use of pthread_cond_*:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=146549
The patch I attached to the bugzilla report fixes this.
Just so you know I am the maniac that wrote the autorollback patch for rpm:
http://lee.k12.nc.us/~joden/misc/patches/rpm/
And beyond caring about making rpm be able to provide rollback mechanisms that make possible a reliable rollback of an upgrade (I say possible because there is only so much you do about what people do in their scriptlets), I care about anything that causes rpm to be unreliable and unstable. So in short I am really interested in your problem.
Cheers...james