maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #04753
Re: Fwd: crash in slave replication with XA transaction
Hi!
>>>>> "Rich" == Rich Prohaska <prohaska@xxxxxxxxxxx> writes:
Rich> Hello,
Rich> Thanks for the feedback on how to fix our replication slave crash.
Rich> I hacked the mariadb 5.5.23 and ended up with the attached patch.
Rich> Rich Prohaska
> --- log.cc.orig 2012-06-08 16:36:34.007231363 -0400
> +++ log.cc 2012-06-08 16:36:36.218354938 -0400
> @@ -1838,6 +1838,7 @@
> {
> int error= 0;
> DBUG_ENTER("binlog_commit");
> + thd->binlog_setup_trx_data();
It would be good to have error checking if the above failed.
> binlog_cache_mngr *const cache_mngr=
> (binlog_cache_mngr*) thd_get_ha_data(thd, binlog_hton);
>
> @@ -1894,6 +1895,7 @@
> {
> DBUG_ENTER("binlog_rollback");
> int error= 0;
> + thd->binlog_setup_trx_data();
It would be good to have error checking if the above failed.
<cut>
> @@ -4846,6 +4848,7 @@
> if (binlog_table_maps == 0)
> binlog_start_trans_and_stmt();
>
> + this->binlog_setup_trx_data();
> binlog_cache_mngr *const cache_mngr=
> (binlog_cache_mngr*) thd_get_ha_data(this, binlog_hton);
I would move the call this->binlog_setup_trx_data() before
if (binlog_table_maps == 0)
binlog_start_trans_and_stmt();
As binlog_start_trans_and_stmt() will also need the structure.
> @@ -4941,6 +4944,7 @@
> {
> DBUG_ENTER("MYSQL_BIN_LOG::remove_pending_rows_event");
>
> + thd->binlog_setup_trx_data();
Add error checking. Same to other places.
Otherwise ok!
Regards,
Monty
References