On 4/13/11 10:26 AM, Jon Olav Hauglid wrote:
> #Atfile:///export/home/x/mysql-5.5-bug12352846/ based
> onrevid:davi.arnaut@stripped
>
> 3442 Jon Olav Hauglid 2011-04-13
> Bug#12352846 - TRANS_XA_START(THD*):
> ASSERTION THD->TRANSACTION.XID_STATE.XID.IS_NULL()
> FAILED
>
> The triggered assert checks that the previous XA transaction has
> done proper cleanup before a new XA transaction is started.
> The bug that caused it to be triggered was that XA COMMIT did not
> clean up error state if XA COMMIT discovered that the current XA
> transaction had to be rolled back.
>
> This patch fixes the problem by resetting the XA error state
> before XA COMMIT calls ha_rollback_trans(). This allows following
> XA transactions to be started without triggering the assert.
>
> Test case added to xa.test.
OK to push.