summaryrefslogtreecommitdiff
path: root/sql/rpl_rli.h
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2014-03-21 10:11:28 +0100
committerunknown <knielsen@knielsen-hq.org>2014-03-21 10:11:28 +0100
commita5418c5540f06e2ec4016734e9f1cc5c50c01de0 (patch)
tree4e21b26065c2691e19322d4671ff7986e716672f /sql/rpl_rli.h
parente59dec0345bba78ba83928060c20c5861cf205f1 (diff)
downloadmariadb-git-a5418c5540f06e2ec4016734e9f1cc5c50c01de0.tar.gz
MDEV-5921: In parallel replication, an error is not correctly signalled to the next transaction
When a transaction fails in parallel replication, it should signal the error to any following transactions doing wait_for_prior_commit() on it. But the code for this was incorrect, and would not correctly remember a prior error when sending the signal. This caused corruption when slave stopped due to an error. Fix by remembering the error code when we first get an error, and passing the saved error code to wakeup_subsequent_commits(). Thanks to nanyi607rao who reported this bug on maria-developers@lists.launchpad.net and analysed the root cause.
Diffstat (limited to 'sql/rpl_rli.h')
-rw-r--r--sql/rpl_rli.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h
index 100ce25fe9c..48193afce4d 100644
--- a/sql/rpl_rli.h
+++ b/sql/rpl_rli.h
@@ -569,7 +569,7 @@ struct rpl_group_info
*/
char future_event_master_log_name[FN_REFLEN];
bool is_parallel_exec;
- bool is_error;
+ int worker_error;
/*
Set true when we signalled that we reach the commit phase. Used to avoid
counting one event group twice.