[Checkins] [zopefoundation/ZODB] 982169: Fix deadlock with storages that "sync" on a new tr...

GitHub noreply at github.com
Thu Feb 2 22:09:22 CET 2017


  Branch: refs/heads/4
  Home:   https://github.com/zopefoundation/ZODB
  Commit: 9821696f584fef3dc172735aec7f84b25b86d63e
      https://github.com/zopefoundation/ZODB/commit/9821696f584fef3dc172735aec7f84b25b86d63e
  Author: Julien Muchembled <jm at nexedi.com>
  Date:   2017-02-02 (Thu, 02 Feb 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: 7c0d963fd6201e9d7214f1d60db74bc12e080d35
      https://github.com/zopefoundation/ZODB/commit/7c0d963fd6201e9d7214f1d60db74bc12e080d35
  Author: Julien Muchembled <jm at nexedi.com>
  Date:   2017-02-02 (Thu, 02 Feb 2017)

  Changed paths:
    M CHANGES.rst

  Log Message:
  -----------
  Changelog for PR #136


Compare: https://github.com/zopefoundation/ZODB/compare/465b35027785...7c0d963fd620


More information about the checkins mailing list