Hello,
We are porting TokuDB, a storage engine for MySQL and Mariadb that
supports XA, to mysql-5.6.6-m9. When committing transactions in a
MySQL system with 2 XA storage engines, TokuDB and InnoDB, we are
crashing in the TC_LOG_MMAP::log_xid function. The
TC_LOG_MMAP::commit method is broken; it does not check the return
value from the ::log_xid method.
Here is the change that we made to fix the problem.
@@ -2631,7 +2631,7 @@
my_xid xid= thd->transaction.xid_state.xid.get_my_xid();
if (all && xid)
- if ((cookie= log_xid(thd, xid)))
+ if (!(cookie= log_xid(thd, xid)))
DBUG_RETURN(RESULT_ABORTED); // Failed to log the transaction
if (ha_commit_low(thd, all))
Thanks
Rich Prohaska