[Checkins] [zopefoundation/ZODB] 6e2dd5: Fix deadlock with storages that "sync" on a new tr...
GitHub
noreply at github.com
Sat Jan 14 01:25:47 CET 2017
Branch: refs/heads/fix-deadlock-on-storage-sync
Home: https://github.com/zopefoundation/ZODB
Commit: 6e2dd54b4988a40766db557906b1d544916a6859
https://github.com/zopefoundation/ZODB/commit/6e2dd54b4988a40766db557906b1d544916a6859
Author: Julien Muchembled <jm at nexedi.com>
Date: 2017-01-14 (Sat, 14 Jan 2017)
Changed paths:
M src/ZODB/DB.py
M src/ZODB/tests/testDB.py
Log Message:
-----------
Fix deadlock with storages that "sync" on a new transaction
This backports a change from commit 227953b977a9e195c4ce9bbb9acd9c5ee60c333a.
NEO, as well as ZEO+server_sync (ERP5 backports this feature with a
monkey-patch), pings the server (primary master node in the case of NEO) on
new transactions. However, this round-trip is actually performed by the thread
that also does tasks requiring to lock the DB, like processing of invalidations.
Since transaction 1.6.1 (more precisely commit e581a120a6), IStorage.sync()
is called indirectly by DB.open() when a transaction has already begun,
and the DB must not be locked when this happens.
Commit: 98fb03f617bbf8c777d2cf03baa892125d8beb49
https://github.com/zopefoundation/ZODB/commit/98fb03f617bbf8c777d2cf03baa892125d8beb49
Author: Julien Muchembled <jm at nexedi.com>
Date: 2017-01-14 (Sat, 14 Jan 2017)
Changed paths:
M CHANGES.rst
Log Message:
-----------
Changelog for PR #136
Compare: https://github.com/zopefoundation/ZODB/compare/f1aff9374f1e...98fb03f617bb
More information about the checkins
mailing list