We made a slightly different change for MariaDB 5.5.24 in the TC_LOG_BINLOG::log_and_order function. $ diff log.cc.orig log.cc 7424a7425,7426
if (thd_get_ha_data(thd, binlog_hton) == NULL) thd->binlog_setup_trx_data();
Is this correct? Is this sufficient? Thanks RIch Prohaska On Tue, Jun 5, 2012 at 10:14 AM, Zardosht Kasheff <zardosht@gmail.com> wrote:
Hello all,
We see this on Maria 5.2 and Maria 5.5 as well. Does the following fix work?
-Zardosht
---------- Forwarded message ---------- From: Rich Prohaska <prohaska@tokutek.com> Date: Mon, Jun 4, 2012 at 1:23 PM Subject: crash in slave replication with XA transaction To: internals@lists.mysql.com
Hello,
We are running MySQL 5.5.21 with both InnoDB and TokuDB as XA storage engines. When one runs a transaction that inserts into an InnoDB table and a TokuDB table, the commit crashes the replication slave at log.cc line 6602 because cache_mngr == NULL. We found a pattern in various log functions in log.cc that calls binlog_setup_trx_data to initialize the txn state.
This change fixes our immediate problem.
$ diff log.cc.orig log.cc 6595a6596,6597
if (thd_get_ha_data(thd, binlog_hton) == NULL) thd->binlog_setup_trx_data();
Is this a correct fix? If so, are there other places that need a similar change?
Thanks Rich Prohaska
The transaction is: create table t1 (a int primary key) engine=innodb; create table t2 (a int primary key) engine=tokudb; set autocommit=0; insert into t1 values (1); insert into t2 values (2); commit;
the slave crashes while handling the commit binlog entry.
-- MySQL Internals Mailing List For list archives: http://lists.mysql.com/internals To unsubscribe: http://lists.mysql.com/internals