← Back to team overview

maria-developers team mailing list archive

Fwd: crash in slave replication with XA transaction


Hello all,

We see this on Maria 5.2 and Maria 5.5 as well. Does the following fix work?


---------- Forwarded message ----------
From: Rich Prohaska <prohaska@xxxxxxxxxxx>
Date: Mon, Jun 4, 2012 at 1:23 PM
Subject: crash in slave replication with XA transaction
To: internals@xxxxxxxxxxxxxxx


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)
>     thd->binlog_setup_trx_data();

Is this a correct fix?  If so, are there other places that need a
similar change?

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.

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

Follow ups