|
Hi,
I think I solved this issue by
#ifdef WITH_WSREP
if (!wsrep_emulate_bin_log)
binlog_trans_log_truncate(thd, *(my_off_t*)sv);
#endif
This avoids using the uninitialized memory in Galera, this was
error in merge.
R: Jan
[email protected] 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.
_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to : [email protected]
Unsubscribe : https://launchpad.net/~maria-developers
More help : https://help.launchpad.net/ListHelp
--
--
Jan Lindström
Principal Engineer

MariaDB | MaxScale | skype: jan_p_lindstrom
www.skysql.com

|
_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to : [email protected]
Unsubscribe : https://launchpad.net/~maria-developers
More help : https://help.launchpad.net/ListHelp