Re: [Maria-developers] Bugs in GTID implementation
![](https://secure.gravatar.com/avatar/99fde0c1dfd216326aae0aff30d493f1.jpg?s=120&d=mm&r=g)
Pavel Ivanov
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.
![](https://secure.gravatar.com/avatar/4c4b3ab90f978bc3864acb2bd873b611.jpg?s=120&d=mm&r=g)
On Mon, Mar 25, 2013 at 4:30 AM, Kristian Nielsen
Pavel Ivanov
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
![](https://secure.gravatar.com/avatar/4c4b3ab90f978bc3864acb2bd873b611.jpg?s=120&d=mm&r=g)
On Mon, Mar 25, 2013 at 10:39 AM, Pavel Ivanov
On Mon, Mar 25, 2013 at 4:30 AM, Kristian Nielsen
wrote: Pavel Ivanov
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
![](https://secure.gravatar.com/avatar/99fde0c1dfd216326aae0aff30d493f1.jpg?s=120&d=mm&r=g)
Pavel Ivanov
On Mon, Mar 25, 2013 at 4:30 AM, Kristian Nielsen
wrote: Pavel Ivanov
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