On 06/04/2012 07:23 PM, Rich Prohaska wrote:
> 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
>> if (thd_get_ha_data(thd, binlog_hton) == NULL)
> Is this a correct fix? If so, are there other places that need a
> similar change?
Should work, but you can just as well do the setup inside thd_get_ha_data().
> 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);
> the slave crashes while handling the commit binlog entry.
Senior Principal Software Developer
Oracle, MySQL Department