Re: [Maria-developers] Bugs in GTID implementation
Pavel Ivanov <pivanof@google.com> writes:
fixes. Meanwhile I've found one more bug in your code. In Gtid_log_event::do_apply_event() you assume that mysql_parse() always succeeds, you don't check thd->is_error() and always return 0. I don't
Ah, right, I see. Can you test the appended patch if it fixes the problem? I tried to copy the error handling to be identical to what Query_log_event::do_apply_event("BEGIN") does. - Kristian.
On Mon, Mar 25, 2013 at 4:30 AM, Kristian Nielsen <knielsen@knielsen-hq.org> wrote:
Pavel Ivanov <pivanof@google.com> writes:
fixes. Meanwhile I've found one more bug in your code. In Gtid_log_event::do_apply_event() you assume that mysql_parse() always succeeds, you don't check thd->is_error() and always return 0. I don't
Ah, right, I see.
Can you test the appended patch if it fixes the problem? I tried to copy the error handling to be identical to what Query_log_event::do_apply_event("BEGIN") does.
Yes, this patch works. And I've found two more minor changes that should be done in GTID support: gcc -O2 complains that err in slave_connection_state::remove() in sql/rpl_gtid.cc is assigned but never used (it's used only in DBUG_ASSERT). Also it complains that error_gtid in mysql_binlog_send in sql/sql_repl.cc can be used uninitialized (I see that it can't but it breaks build with -Werror). Pavel
On Mon, Mar 25, 2013 at 10:39 AM, Pavel Ivanov <pivanof@google.com> wrote:
On Mon, Mar 25, 2013 at 4:30 AM, Kristian Nielsen <knielsen@knielsen-hq.org> wrote:
Pavel Ivanov <pivanof@google.com> writes:
fixes. Meanwhile I've found one more bug in your code. In Gtid_log_event::do_apply_event() you assume that mysql_parse() always succeeds, you don't check thd->is_error() and always return 0. I don't
Ah, right, I see.
Can you test the appended patch if it fixes the problem? I tried to copy the error handling to be identical to what Query_log_event::do_apply_event("BEGIN") does.
Yes, this patch works.
And I've found two more minor changes that should be done in GTID support: gcc -O2 complains that err in slave_connection_state::remove() in sql/rpl_gtid.cc is assigned but never used (it's used only in DBUG_ASSERT). Also it complains that error_gtid in mysql_binlog_send in sql/sql_repl.cc can be used uninitialized (I see that it can't but it breaks build with -Werror).
And more minor fixes: tests rpl.rpl_gtid_crash and rpl.rpl_gtid_errorhandling need "--source include/have_debug.inc" and multi_source.gtid needs "--source include/not_embedded.inc". Pavel
Pavel Ivanov <pivanof@google.com> writes:
On Mon, Mar 25, 2013 at 4:30 AM, Kristian Nielsen <knielsen@knielsen-hq.org> wrote:
Pavel Ivanov <pivanof@google.com> writes:
fixes. Meanwhile I've found one more bug in your code. In Gtid_log_event::do_apply_event() you assume that mysql_parse() always succeeds, you don't check thd->is_error() and always return 0. I don't
Can you test the appended patch if it fixes the problem? I tried to copy the
Yes, this patch works.
And I've found two more minor changes that should be done in GTID support: gcc -O2 complains that err in slave_connection_state::remove() in sql/rpl_gtid.cc is assigned but never used (it's used only in DBUG_ASSERT). Also it complains that error_gtid in mysql_binlog_send in sql/sql_repl.cc can be used uninitialized (I see that it can't but it breaks build with -Werror).
And more minor fixes: tests rpl.rpl_gtid_crash and rpl.rpl_gtid_errorhandling need "--source include/have_debug.inc" and multi_source.gtid needs "--source include/not_embedded.inc".
Thanks. These should all be fixed with my latest push to 10.0-mdev26. - Kristian.
participants (2)
-
Kristian Nielsen
-
Pavel Ivanov