- 16 Apr, 2004 1 commit
-
-
Tim Peters authored
-
- 17 Mar, 2004 1 commit
-
-
Tim Peters authored
FileStorageError: The database has already been packed to a later time or no changes have been made since the last pack exception. Instead that message is logged (at INFO level), and the pack attempt simply returns then (no pack is performed). Incidentally, this should repair frequent reports of failure in the new checkPackLotsWhileWriting test. On non-Windows systems, it seems that the worker thread often didn't get enough cycles to commit a change between the main thread's attempts to run pack() (and so the exception above got raised then).
-
- 16 Mar, 2004 1 commit
-
-
Tim Peters authored
failures in the ZEO FileStorage pack-while-writing tests, where they die with CorruptedError: ... transaction with checkpoint flag set By coincidence, the same kind of death during pack() was reported on zodb-dev today(!). The new checkPackLotsWhileWriting test provokes this on my box reliably (failed each time it was run). The problem appears to be that pack's idea of where a FileStorage ends was obtained merely by seeking to the end of the file. But if a transaction is in progress, there can be an extra "not really there yet" transaction at the end of the file, and when either buildPackIndex() or findReachableFromFuture() bumped into a such a thing, the CorruptedError above got raised. This is always rare, and was exceedingly rare before because only one pack per test was tried. The new test tries packing repeatedly while a thread keeps hammering the database, so is much more likely to provoke the problem. The fix amounts to passing FileStorage._pos to the pack code, telling the latter directly where the legit transactions in the file end.
-
- 11 Feb, 2004 1 commit
-
-
Jeremy Hylton authored
-