summaryrefslogtreecommitdiff
path: root/plugin
diff options
context:
space:
mode:
authorHe Zhenxing <zhenxing.he@sun.com>2009-10-12 20:57:30 +0800
committerHe Zhenxing <zhenxing.he@sun.com>2009-10-12 20:57:30 +0800
commit7d3d0fc303183ef50a343680ce70df71d5675cd1 (patch)
tree09d10f6dfb62e746a6731b0dc0fe5269bf1d8f28 /plugin
parent55842061e782593608808dc5c3e95ebc652650d7 (diff)
downloadmariadb-git-7d3d0fc303183ef50a343680ce70df71d5675cd1.tar.gz
Backport Bug#45852 Semisynch: Last_IO_Error: Fatal error: Failed to run 'after_queue_event' hook
Errors when send reply to master should never cause the IO thread to stop, because master can fall back to async replication if it does not get reply from slave. The problem is fixed by deliberately ignoring the return value of slaveReply.
Diffstat (limited to 'plugin')
-rw-r--r--plugin/semisync/semisync_slave_plugin.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugin/semisync/semisync_slave_plugin.cc b/plugin/semisync/semisync_slave_plugin.cc
index 40c6ed9838c..ef508596698 100644
--- a/plugin/semisync/semisync_slave_plugin.cc
+++ b/plugin/semisync/semisync_slave_plugin.cc
@@ -99,9 +99,16 @@ int repl_semi_slave_queue_event(Binlog_relay_IO_param *param,
uint32 flags)
{
if (rpl_semi_sync_slave_status && semi_sync_need_reply)
- return repl_semisync.slaveReply(param->mysql,
+ {
+ /*
+ We deliberately ignore the error in slaveReply, such error
+ should not cause the slave IO thread to stop, and the error
+ messages are already reported.
+ */
+ (void) repl_semisync.slaveReply(param->mysql,
param->master_log_name,
param->master_log_pos);
+ }
return 0;
}