Re: sqlite problems on Mac OS X 10.4
Jim Correia <[email protected]> Fri, 9 Sep 2005 13:25:58 -0400
| Newsgroups | gmane.mail.bogofilter.devel |
|---|---|
| Message-ID | <[email protected]> |
On Sep 9, 2005, at 12:19 PM, Matthias Andree wrote: > Jim Correia wrote: > >> Does BDB have different performance characteristics or semantics? >> If I >> build with the BDB backend, t.lock3 passes very quickly. > > Yes, concurrency was removed from the Berkeley DB backend, albeit > for different > reasons (namely that the lock table sizing was difficult to get > right). bogofilter ensures data integrity using some other mechanism for multiple concurrent processes when using BDB? > I don't know and know no way to tell if the check is just making > slow progress > or none at all. Finding out the amount of concurrency that triggers > bugs, > finishes reasonably fast on intact systems and doesn't take > excessively long on > older systems is a bit difficult. I think there is a bug here (perhaps in sqlite and/or how the locking mechanism works on Mac OS X) but I don't know how to proceed further. If I ratchet the test down to 2 concurrent instances, it still hangs. Both have identical backtraces (easier to verify with only 2 :-): #0 0x9001efe8 in select () #1 0x000161f4 in bf_sleep (delay=4) at system.c:58 #2 0x0000dfdc in rand_sleep (min=1000, max=1000000) at rand_sleep.c:20 #3 0x000157bc in busyhandler (dummy=0x4, count=0) at datastore_sqlite.c:247 #4 0x9436b188 in sqlite3pager_pagecount () #5 0x9436b520 in sqlite3pager_ref () #6 0x9436cc4c in sqlite3pager_sync () #7 0x94357ff8 in sqlite3BtreeSync () #8 0x94380f30 in sqlite3VdbeSetColName () #9 0x943812f0 in sqlite3VdbeHalt () #10 0x9437ca80 in sqlite3VdbeExec () #11 0x9437f26c in sqlite3_step () #12 0x94385a0c in sqlite3_exec () #13 0x00015420 in sqlexec (db=0x4, cmd=0x27b84 "COMMIT;") at datastore_sqlite.c:144 #14 0x0000c804 in close_wordlists (commit=4) at wordlists.c:259 #15 0x0000a130 in bogomain (argc=8, argv=0x0) at bogomain.c:80 #16 0x00003324 in main (argc=8, argv=0xbffff6b0) at main.c:30 If I hardcode bf_sleep to use 10 microseconds rather than the passed in value (in an attempt to make things complete faster) I get retrying registration after avoided deadlock... ...[repeat many times] retrying registration after avoided deadlock... retry count exceeded, giving up. #### Part 2 #### And we end up right back where we started. I'm willing to poke at the problem some more, but I'm not sure where to go next. Jim _______________________________________________ Bogofilter-dev mailing list [email protected] http://www.bogofilter.org/mailman/listinfo/bogofilter-dev