On 07/19/2014 05:22 PM, Sean Upton wrote:
I have been dealing with locking issues and RelStorage for the past
few days, and want to verify what I believe is a bug: without
RELSTORAGE_ABORT_EARLY set in environment, tpc_vote() could
potentially leave an ILocker adapter setting an RDBMS table lock
(originally set in either tpc_begin() or in _prepare_tid()) that does
not get removed.
Sorry to take so long to reply. Life is busy!
That variable only has an effect on transactions that fail inside
tpc_vote(). When tpc_vote() fails, the code expects something to call
tpc_abort() later, releasing the commit lock. However, I wonder whether
there are cases where the transaction package will only call abort(),
not tpc_abort(). If so, RelStorage probably needs to release the lock
For more information about ZODB, see http://zodb.org/
ZODB-Dev mailing list - ZODB-Dev@zope.org