summaryrefslogtreecommitdiff
path: root/sql/slave.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/slave.cc')
-rw-r--r--sql/slave.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/slave.cc b/sql/slave.cc
index d6f0809c277..700838d7cd7 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -1013,7 +1013,12 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
mi->inc_pos(event_len, ev->log_seq);
flush_master_info(mi);
- if(slave_skip_counter)
+ if(slave_skip_counter && /* protect against common user error of
+ setting the counter to 1 instead of 2
+ while recovering from an failed
+ auto-increment insert */
+ !(type_code == INTVAR_EVENT &&
+ slave_skip_counter == 1))
--slave_skip_counter;
delete ev;
return 0; // avoid infinite update loops