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.

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


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

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to