List:Internals« Previous MessageNext Message »
From:Rich Prohaska Date:August 22 2012 8:04pm
Subject:problem with TC_LOG_MMAP::commit in mysql-5.6.6-m9
View as plain text  

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

Rich Prohaska
problem with TC_LOG_MMAP::commit in mysql-5.6.6-m9Rich Prohaska22 Aug
  • Re: problem with TC_LOG_MMAP::commit in mysql-5.6.6-m9Mats Kindahl23 Aug