problem with TC_LOG_MMAP::commit in mysql-5.6.6-m9

Rich Prohaska <[email protected]> Wed, 22 Aug 2012 16:04:48 -0400
Newsgroups gmane.comp.db.mysql.devel
Message-ID <CAB3YYRXd47qBAXz+MgjC3SNb1=LGchgg58a9QnoXSPy7gqCTsQ@mail.gmail.com>
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

-- 
MySQL Internals Mailing List
For list archives: http://lists.mysql.com/internals
To unsubscribe:    http://lists.mysql.com/internals