- 25 Jan, 2002 9 commits
-
-
Guido van Rossum authored
the code try: root = self._getRoot() ... except: self._closeDB(root) self._delDB() raise which fails with an UnboundLocalError if the first line in the try clause fails. Fixed this by setting 'root = None' before each such try clause, and adding a None check to _closeDB(). Also removed a useless 'root = None' from the body of _closeDB(). Barry: I saw this in the saz 1.0c1 release. Is it worth backporting? Probably not given that we're not going to do a merge pre-1.0.
-
Jeremy Hylton authored
Put the tpc_begin() -> tpc_finish() in a try/except. If an error occurs, abort the current transaction and re-raise the error. It appears that some storages (well, only Standby Storage) has trouble shutting down if a transaction is in progress.
-
Jeremy Hylton authored
-
Jeremy Hylton authored
Replace three small integers with symbolic constants. TRANS_HDR_LEN = 23 DATA_HDR_LEN = 42 DATA_VERSION_HDR_LEN = 58 The constants make it easier to remember what kind of header is being read and/or what kind of offset is being computed. Refactor commitVersion(): - Keep locking & arg checking in commitVersion(), but move actual commit logic to _commitVersion(). This removes a level of indentation. - Remove local vars that alias attributes of other vars Add a few more POSKeyError exceptions.
-
Jeremy Hylton authored
-
Jeremy Hylton authored
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Guido van Rossum authored
Highlights: BaseStorage.py: Fix copyTransactionsFrom() when commitVersion(), abortVersion() or transactionalUndo() is used. FileStorage.py: Add restore() method, which can store data records corresponding to undo or version manipulations; add close() method to FileIterator class; raise POSKeyError instead of KeyError for bad keys, to ensure safe formatting of transaction ids (binary strings) in tracebacks. POSException.py: Add POSKeyError. fsdump.py: Deal with records indicating the undo or abort of a version doing object creation. tests/IteratorStorage.py: New unittests for the iterator() method and interface of the storage API; new unit tests for extended file iterators; new class, IteratorDeepCompare; test of the iterator .close() method. tests/testFileStorage.py: Add class FileStorageRecoveryTest, which adds two simple tests for copyTransactionsFrom(). This indirectly tests the new restore() method.
-
- 24 Jan, 2002 11 commits
-
-
Jeremy Hylton authored
1. The exception is in serial, not arg. 2. Must call handle_serials() before tpc_finish(), because handle_serials() may raise an exception that causes the transaction to abort.
-
Jeremy Hylton authored
The main test suite handles ZEO now.
-
Jeremy Hylton authored
-
Guido van Rossum authored
Laredo. [merging from Recovery branch into trunk]
-
matt@zope.com authored
Py_None.
-
Jeremy Hylton authored
Make sure that the test undoes an object creation and make sure that the iterator for that transaction return None for the data attribute.
-
Jeremy Hylton authored
-
Jeremy Hylton authored
This will allow an iterator to handle aborted versions and undone object creations. XXX Still need a test for the latter.
-
Jeremy Hylton authored
XXX checkTransactionalUndoIterator() should too, but doesn't.
-
Jeremy Hylton authored
# XXX need a test case that covers iteration over a storage that # includes a transactional undo that un-created an object.
-
Jeremy Hylton authored
-
- 23 Jan, 2002 6 commits
-
-
Jeremy Hylton authored
If supplied, they are stored as metadata on the transaction object. This is helpful for debugging.
-
Jeremy Hylton authored
-
Jeremy Hylton authored
-
Jeremy Hylton authored
-
Guido van Rossum authored
-
Guido van Rossum authored
-
- 22 Jan, 2002 2 commits
-
-
Jeremy Hylton authored
-
Jeremy Hylton authored
It's not thread-safe to store a Transaction() object in an instance variable without some sort of locking. Nor is it desirable to use the same transaction object for more than one transaction. So get rid of all uses of self._transaction and replace with a local variable.
-
- 21 Jan, 2002 6 commits
-
-
Jeremy Hylton authored
-
Guido van Rossum authored
running the rest of the tests in the child.
-
Jeremy Hylton authored
Let super tearDown() close the storage. Tracking changes to ZODB/tests/StorageTestBase.
-
Jeremy Hylton authored
running the rest of the tests in the child.
-
Jeremy Hylton authored
-
Jeremy Hylton authored
-
- 17 Jan, 2002 2 commits
-
-
Jeremy Hylton authored
The Standby-branch was branched from the StandaloneZODB-1_0-branch, which includes the BTrees-fsIndex code. I didn't include that change in the merge, but everything else. Terse summary follows: BTreeModuleTemplate.c: Greg Ward's ConflictError patch
-
Jeremy Hylton authored
The Standby-branch was branched from the StandaloneZODB-1_0-branch, which includes the BTrees-fsIndex code. I didn't include that change in the merge, but everything else. Terse summary follows: BaseStorage.py: Add read-only storage feature. Add TransactionRecord and DataRecord marker classes for iteration. Reformat some lines. FileStorage.py: Add read-only storage feature. Greg Ward's ConflictError patch Reformat some lines. Add lastTransaction(), lastSerialno(). Add bounds support to iterator(). Use TransactionRecord and DataRecord. Connection.py: DemoStorage.py: MappingStorage.py: Greg Ward's ConflictError patch POSException.py: Greg Ward's ConflictError patch Add ReadOnlyError.
-
- 11 Jan, 2002 2 commits
-
-
Jeremy Hylton authored
-
Jeremy Hylton authored
-
- 09 Jan, 2002 2 commits
-
-
Brian Lloyd authored
-
Brian Lloyd authored
-