summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BitKeeper/etc/logging_ok1
-rw-r--r--sql/log_event.cc9
2 files changed, 10 insertions, 0 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok
index 70aaa8d2a52..fcc23ea7073 100644
--- a/BitKeeper/etc/logging_ok
+++ b/BitKeeper/etc/logging_ok
@@ -16,6 +16,7 @@ bk@admin.bk
davida@isil.mysql.com
gluh@gluh.(none)
greg@mysql.com
+guilhem@mysql.com
gweir@work.mysql.com
heikki@donna.mysql.fi
heikki@hundin.mysql.fi
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 3c5a2eae38c..78470a2b198 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -588,6 +588,15 @@ err:
sql_print_error("Error in Log_event::read_log_event(): '%s', \
data_len=%d,event_type=%d",error,data_len,head[EVENT_TYPE_OFFSET]);
my_free(buf, MYF(MY_ALLOW_ZERO_PTR));
+ /*
+ The SQL slave thread will check if file->error<0 to know
+ if there was an I/O error. Even if there is no "low-level" I/O errors
+ with 'file', any of the high-level above errors is worrying
+ enough to stop the SQL thread now ; as we are skipping the current event,
+ going on with reading and successfully executing other events can
+ only corrupt the slave's databases. So stop.
+ */
+ file->error= -1;
}
return res;
}