seppo.jaakola@codership.com writes:
Did I understand it right that the problem is with "ROLLBACK TO SAVEPOINT...", where the designated savepoint does not exist? Did you
No. It is a very simple issue. The beginning of binlog_savepoint_set() reads: #ifdef WITH_WSREP if (wsrep_emulate_bin_log) DBUG_RETURN(0); #endif /* WITH_WSREP */ So binlog_savepoint_set() does nothing in the Galera case. But binlog_savepoint_rollback() reads: #ifdef WITH_WSREP if (!wsrep_emulate_bin_log ... #endif { ... } binlog_trans_log_truncate(thd, *(my_off_t*)sv); Note that the binlog_trans_log_truncate() call is outside the if, so it _is_ executed even in the Galera case. So the WSREP patch tries to disable some binlog savepoint code but does it incorrectly. It disables setting the savepoint but not rolling it back, so the latter gets invalid data. It needs to match up, so that _set() and _rollback() match each other in what they do. This issue is in the maria-10.0-galera tree. I did not check other Galera trees (not sure which trees to check). - Kristian.