Commit 33f3c4a3 authored by Tim Peters's avatar Tim Peters

loadBefore(): This forgot to acquire the lock. That's a clear bug.

However, fixing it so far *appears* to fix a bunch of shy FileStorage
pack[Now]WhileWriting test failures whose connection to loadBefore()
isn't obvious.  It's plausible that it's a real fix for those, just
not (yet) compelling.  It seems very likely to be a real fix for very
rare failures that have shown up only in ChrisM's overnight testrunner
reports (because those did have stuff related to loadBefore() in their
tracebacks).
parent 800c94c5
......@@ -13,7 +13,7 @@
##############################################################################
"""Storage implementation using a log written to a single file.
$Revision: 1.4 $
$Revision: 1.5 $
"""
import base64
......@@ -589,6 +589,8 @@ class FileStorage(BaseStorage.BaseStorage,
self._lock_release()
def loadBefore(self, oid, tid):
self._lock_acquire()
try:
pos = self._lookup_pos(oid)
end_tid = None
while True:
......@@ -619,6 +621,9 @@ class FileStorage(BaseStorage.BaseStorage,
else:
return self._file.read(h.plen), h.tid, end_tid
finally:
self._lock_release()
def modifiedInVersion(self, oid):
self._lock_acquire()
try:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment