[ZCM] [ZC] 701/ 3 Comment "Transaction Manager Brokenness"

Collector: Zope Bugs, Features, and Patches ... zope-coders@zope.org
Mon, 02 Dec 2002 17:25:37 -0500


Issue #701 Update (Comment) "Transaction Manager Brokenness"
 Status Accepted, Zope/bug critical
To followup, visit:
  http://collector.zope.org/Zope/701

==============================================================
= Comment - Entry #3 by jeremy on Dec 2, 2002 5:25 pm

The tpc_begin(), abort(), tpc_abort() sequence looks normal to me.  The transaction got started, something went wrong in the middle (like a ConflictError), so the current transaction was aborted.  An abort during 2PC requires that we call abort() for each object and then call tpc_abort().

Is there some specific problem or unusual behavior you are seeing?  Or are you just nervous about log messages you haven't seen before?

________________________________________
= Assign - Entry #2 by jeremy on Dec 2, 2002 5:19 pm

 Status: Pending => Accepted

 Supporters added: jeremy

It might help to know more about what the resource manager (aka jar) is actually doing.  For example, abort() is called with two arguments -- an object and a transaction.  What objects are getting passed to abort?  Is it the same object twice or is it two different objects?
________________________________________
= Request - Entry #1 by htrd on Nov 27, 2002 1:52 pm

>From the "Transaction Manager Changes" thread on zodb-dev.

>TD> I am seeing some unusual behaviour in some classes which hook
>TD> into the transaction manager since Jeremy's sortKey changes. I
>TD> have not been able to reproduce a minimal test case yet, so this
>TD> has been diagnosed from activity logs on a production system.
>
>TD> The following two call sequences are ringing my alarm bells:
>
>TD> 1. abort, abort (that is, abort called twice on 
>TD>    the same _p_jar object with no intermediate calls)
>
>TD> 2. tpc_begin, abort, tpc_abort
>
>TD> Does this indicate a bug somewhere in the transaction manager,
>TD> or should my objects be expecting this?
>
>TD> (if it helps, there may be subtransactions involved too)
>



==============================================================