Commit b656f890 authored by Jeremy Hylton's avatar Jeremy Hylton

Fix the invalidation-during-load test to execute the branch of interest.

parent b4ae259d
...@@ -256,7 +256,10 @@ to test the Connection code. ...@@ -256,7 +256,10 @@ to test the Connection code.
... self.db.invalidate(tid, {oid:1}) ... self.db.invalidate(tid, {oid:1})
... self.count += 1 ... self.count += 1
Now we'll repeat all the setup that was done earlier. We can execute this test with a single connection, because we're
synthesizing the invalidation that is normally generated by the second
connection. We need to create two revisions so that there is a
non-current revision to load.
>>> ts = TestStorage() >>> ts = TestStorage()
>>> db = DB(ts) >>> db = DB(ts)
...@@ -266,6 +269,8 @@ Now we'll repeat all the setup that was done earlier. ...@@ -266,6 +269,8 @@ Now we'll repeat all the setup that was done earlier.
>>> r1["a"] = MinPO(0) >>> r1["a"] = MinPO(0)
>>> r1["b"] = MinPO(0) >>> r1["b"] = MinPO(0)
>>> cn1.getTransaction().commit() >>> cn1.getTransaction().commit()
>>> r1["b"].value = 1
>>> cn1.getTransaction().commit()
>>> cn1.cacheMinimize() >>> cn1.cacheMinimize()
>>> oid = r1["b"]._p_oid >>> oid = r1["b"]._p_oid
...@@ -280,9 +285,6 @@ False ...@@ -280,9 +285,6 @@ False
>>> r1["b"]._p_state >>> r1["b"]._p_state
-1 -1
>>> r1["b"]._p_activate() >>> r1["b"]._p_activate()
Traceback (most recent call last):
...
ReadConflictError: database read conflict error (oid 0000000000000002, class ZODB.tests.MinPO.MinPO)
>>> oid in cn1._invalidated >>> oid in cn1._invalidated
True True
>>> ts.count >>> ts.count
...@@ -290,9 +292,6 @@ True ...@@ -290,9 +292,6 @@ True
_p_independent() still has the desired effect. _p_independent() still has the desired effect.
We still get a non-current version if the invalidation occurs while we
are loading the current revision. Can that happen without ZEO?
Error cases: Error cases:
- storage doesn't have an earlier revision - storage doesn't have an earlier revision
- MVCC returns current revision - MVCC returns current revision
......
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