maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #05283
Re: Bugs in GTID implementation
Pavel Ivanov <pivanof@xxxxxxxxxx> 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.
=== modified file 'sql/log_event.cc'
--- a/sql/log_event.cc 2013-03-25 11:25:47 +0000
+++ b/sql/log_event.cc 2013-03-25 11:28:17 +0000
@@ -6235,12 +6235,15 @@
/* Finalize server status flags after executing a statement. */
thd->update_server_status();
log_slow_statement(thd);
- general_log_write(thd, COM_QUERY, thd->query(), thd->query_length());
+ if (unlikely(thd->is_fatal_error))
+ thd->is_slave_error= 1;
+ else if (likely(!thd->is_slave_error))
+ general_log_write(thd, COM_QUERY, thd->query(), thd->query_length());
}
thd->reset_query();
free_root(thd->mem_root,MYF(MY_KEEP_PREALLOC));
- return 0;
+ return thd->is_slave_error;
}
Follow ups