[Checkins] [zopefoundation/ZODB] 6b7075: patch time.time in historical_connections to avoid...
GitHub
noreply at github.com
Mon Apr 4 17:42:05 CEST 2016
Branch: refs/heads/master
Home: https://github.com/zopefoundation/ZODB
Commit: 6b707535efbd33da6b758bed57e15c844f0e9b53
https://github.com/zopefoundation/ZODB/commit/6b707535efbd33da6b758bed57e15c844f0e9b53
Author: Jason Madden <jason+github at nextthought.com>
Date: 2016-04-04 (Mon, 04 Apr 2016)
Changed paths:
M src/ZODB/DB.py
M src/ZODB/historical_connections.txt
Log Message:
-----------
patch time.time in historical_connections to avoid windows failures; fix race condition in pool.availableGC
* patch time.time in historical_connections to avoid windows failures.
* Also use a mock version of datetime.datetime.utcnow.
We can't patch the method in-place because it's an extension type.
* synchronize sleep with time
* increment by less than the pool timeout to avoid a race condition.
* Avoid mutating the dict as we iter over it.
Seen in Python 3.4 tests:
File "/home/travis/build/zopefoundation/ZODB/src/ZODB/historical_connections.txt", line 263, in historical_connections.txt
Failed example:
conn = db.open()
Exception raised:
Traceback (most recent call last):
File "/opt/python/3.4.2/lib/python3.4/doctest.py", line 1324, in __run
compileflags, 1), test.globs)
File "<doctest historical_connections.txt[0]>", line 1, in <module>
conn = db.open()
File "/home/travis/build/zopefoundation/ZODB/src/ZODB/DB.py", line 761, in open
self.historical_pool.availableGC()
File "/home/travis/build/zopefoundation/ZODB/src/ZODB/DB.py", line 277, in availableGC
for key, pool in self.pools.items():
RuntimeError: dictionary changed size during iteration
More information about the checkins
mailing list