On 07/19/2014 05:22 PM, Sean Upton wrote:
Folks,

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.

Hi Sean,

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 in abort().

Shane

_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to