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 <[email protected]> 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 <[email protected]> > Date: Mon, Jun 4, 2012 at 1:23 PM > Subject: crash in slave replication with XA transaction > To: [email protected] > > > 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 _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

