I am encountering an occasional blocking condition when multiple processes are concurrently updating database or beginning transactions where one or more of the processes has attached databases. I'm using 2.8.15, and all locks should be "exclusive" in this version, so at least one of the processes should not block, but all are.
I'd like to track this down, and I'd appreciate pointers into the section of code that deals with locking of attached databases. I'm unable to produce sample code that generates this problem reliably, but here's the basic scenario: I have three database, call them db1, db2, and db3. There are multiple processes accessing one or both of these databases. Some processes open separate database handles to db1 and/or db2, while other processes open a handle to db1 and then attach db2 or open a handle to db3 and then attach db1 and db2. (This is "supposed" to be a kosher combination, I believe.) Any process can update either database. There are no threads, only separate processes (Linux). At various times, when INSERT, UPDATE, or BEGIN statements are being requested in the various processes (along, frequently, with one or more SELECT statements from other processes), all processes will hang on the database timeout, awaiting completion of the request -- apparently with all processes awaiting receipt of a lock to allow them to proceed. Help and/or pointers to sections of code to inspect would be greatly appreciated! Thanks, Derrell

