X catch simultaneous invalidate vs unghostify
This continues https://github.com/zopefoundation/zodb/commit/1e285a3c It caught the following race condition on zopenrace.py[1] in ZODB4 environment(*): Exception in thread Thread-25: Traceback (most recent call last): File "/srv/slapgrid/slappart7/srv/runner/software/c75bac561a367d3162cc44818372d123/parts/python2.7/lib/python2.7/threading.py", line 801, in __bootstrap_inner self.run() File "/srv/slapgrid/slappart7/srv/runner/software/c75bac561a367d3162cc44818372d123/parts/python2.7/lib/python2.7/threading.py", line 754, in run self.__target(*self.__args, **self.__kwargs) File "./zopenrace.py", line 160, in T1 t1() File "./zopenrace.py", line 153, in t1 raise AssertionError("T1: obj1.i (%d) != obj2.i (%d)" % (i1, i2)) AssertionError: T1: obj1.i (503) != obj2.i (502) Exception in thread Thread-26: Traceback (most recent call last): File "/srv/slapgrid/slappart7/srv/runner/software/c75bac561a367d3162cc44818372d123/parts/python2.7/lib/python2.7/threading.py", line 801, in __bootstrap_inner self.run() File "/srv/slapgrid/slappart7/srv/runner/software/c75bac561a367d3162cc44818372d123/parts/python2.7/lib/python2.7/threading.py", line 754, in run self.__target(*self.__args, **self.__kwargs) File "./zopenrace.py", line 184, in T2 t2() File "./zopenrace.py", line 179, in t2 transaction.commit() File "/srv/slapgrid/slappart7/srv/runner/kirr/JZ3.venv/lib/python2.7/site-packages/transaction/_manager.py", line 123, in commit return self.get().commit() File "/srv/slapgrid/slappart7/srv/runner/kirr/JZ3.venv/lib/python2.7/site-packages/transaction/_transaction.py", line 285, in commit self._synchronizers.map(lambda s: s.afterCompletion(self)) File "/srv/slapgrid/slappart7/srv/runner/kirr/JZ3.venv/lib/python2.7/site-packages/transaction/weakset.py", line 62, in map f(elt) File "/srv/slapgrid/slappart7/srv/runner/kirr/JZ3.venv/lib/python2.7/site-packages/transaction/_transaction.py", line 285, in <lambda> self._synchronizers.map(lambda s: s.afterCompletion(self)) File "/srv/slapgrid/slappart7/srv/runner/kirr/ZODB/src/ZODB/Connection.py", line 871, in _storage_sync self._flush_invalidations() File "/srv/slapgrid/slappart7/srv/runner/kirr/ZODB/src/ZODB/Connection.py", line 549, in _flush_invalidations self._cache.invalidate(invalidated) SystemError: invalidate: object at 0x7fa0cf1375f0 with type PInt: simultaneous unghostify is running [1] https://github.com/zopefoundation/ZODB/issues/290 (*) ZODB-4.4.4 + PR136 + ping-on-newtxn
Showing