Commit 18da1d3f authored by unknown's avatar unknown

deal with errno out of range when reading it from the master


sql/slave.cc:
  print expected error number
sql/unireg.h:
  sanity check for errno range in ER(X)
parent 714640bf
...@@ -916,9 +916,10 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len) ...@@ -916,9 +916,10 @@ static int exec_event(THD* thd, NET* net, MASTER_INFO* mi, int event_len)
(actual_error = thd->net.last_errno) && expected_error) (actual_error = thd->net.last_errno) && expected_error)
{ {
const char* errmsg = "Slave: did not get the expected error\ const char* errmsg = "Slave: did not get the expected error\
running query from master - expected: '%s', got '%s'"; running query from master - expected: '%s'(%d), got '%s'(%d)";
sql_print_error(errmsg, ER(expected_error), sql_print_error(errmsg, ER(expected_error), expected_error,
actual_error ? thd->net.last_error:"no error" actual_error ? thd->net.last_error:"no error",
actual_error
); );
thd->query_error = 1; thd->query_error = 1;
} }
......
...@@ -37,7 +37,8 @@ ...@@ -37,7 +37,8 @@
#define SHAREDIR "share/" #define SHAREDIR "share/"
#endif #endif
#define ER(X) errmesg[(X)-1000] #define ER(X) ((X) >= 1000 && (X) < ER_ERROR_MESSAGES + 1000) ? \
errmesg[(X)-1000] : "Invalid error code"
#define ERRMAPP 1 /* Errormap f|r my_error */ #define ERRMAPP 1 /* Errormap f|r my_error */
#define LIBLEN FN_REFLEN-FN_LEN /* Max l{ngd p} dev */ #define LIBLEN FN_REFLEN-FN_LEN /* Max l{ngd p} dev */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment