mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
MDEV-35660 Assertion `trx->xid.is_null()' failed
The assertion fails during wsrep recovery step, in function
innobase_rollback_by_xid(). The transaction's xid is normally
cleared as part of lookup by xid, unless the transaction has
a wsrep specific xid.
This is a regression from MDEV-24035 (commit ddd7d5d8e3
)
which removed the part clears xid before rollback for transaction
with a wsrep specific xid.
This commit is contained in:
parent
3f22f5f2fe
commit
07b77e862c
1 changed files with 4 additions and 1 deletions
|
@ -3076,7 +3076,10 @@ static int innobase_rollback_by_xid(handlerton*, XID *xid) noexcept
|
|||
return XAER_RMFAIL;
|
||||
if (trx_t *trx= trx_get_trx_by_xid(xid))
|
||||
{
|
||||
ut_ad(trx->xid.is_null()); /* should have been cleared by the lookup */
|
||||
/* Lookup by xid clears the transaction xid.
|
||||
For wsrep we clear it below. */
|
||||
ut_ad(trx->xid.is_null() || wsrep_is_wsrep_xid(&trx->xid));
|
||||
trx->xid.null();
|
||||
trx_deregister_from_2pc(trx);
|
||||
THD* thd= trx->mysql_thd;
|
||||
dberr_t err= trx_rollback_for_mysql(trx);
|
||||
|
|
Loading…
Reference in a new issue