On Wed, Jul 13, 2005 at 11:26:44AM -0400, A.M. Kuchling wrote: > One of the programmers here managed to corrupt a Durus database in a > novel way. On opening the FileStorage, the _build_index() method dies Figured out the problem... There was a subthread doing work at the same time. I thought the thread was only doing network I/O and not touching persistent objects. However, I forgot that we have a clever-clever wrapper for the XML-RPC server that does a commit() before the call and an abort() afterwards; this is so all changes made in the current process are visible to the XML-RPC server process, which is also looking at the Durus database. The net effect was to perform a commit() in two different threads at the same time. I kept thinking that the thread was *touching* an object, and placed my debug prints to that effect, but never saw anything; none of my printouts would have caught double commits. --amk