diff options
author | unknown <msvensson@neptunus.(none)> | 2006-07-26 14:09:20 +0200 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2006-07-26 14:09:20 +0200 |
commit | de41f4e7bb0582101e4e1c8343962fa31bbe549e (patch) | |
tree | 328d27d08b707854347a0457312e5c1ee8517dbd | |
parent | 0227a7b066bc64a05ab81dc8859227545829a386 (diff) | |
download | mariadb-git-de41f4e7bb0582101e4e1c8343962fa31bbe549e.tar.gz |
Bug#16561 Unknown ERROR msg "ERROR 1186 (HY000): Binlog closed" by perror
- Since error 1186 is not found among NDB error codes, the message retuned should indicate that.
extra/perror.c:
Move the !found out one level
mysql-test/t/perror.test:
Add test case for bug#16561
ndb/src/kernel/error/ndbd_exit_codes.c:
Check not only for zero size string but also classification "unknown error" when looking for an error mesage for an error code
-rw-r--r-- | extra/perror.c | 27 | ||||
-rw-r--r-- | mysql-test/t/perror.test | 11 | ||||
-rw-r--r-- | ndb/src/kernel/error/ndbd_exit_codes.c | 2 |
3 files changed, 27 insertions, 13 deletions
diff --git a/extra/perror.c b/extra/perror.c index 531d30dae86..b26e516a101 100644 --- a/extra/perror.c +++ b/extra/perror.c @@ -261,7 +261,7 @@ int main(int argc,char *argv[]) found= 1; msg= 0; } - else + else #endif msg = strerror(code); @@ -281,20 +281,23 @@ int main(int argc,char *argv[]) else puts(msg); } - if (!(msg=get_ha_error_msg(code))) + + if (!found) { - if (!found) - { + /* Error message still not found, look in handler error codes */ + if (!(msg=get_ha_error_msg(code))) + { fprintf(stderr,"Illegal error code: %d\n",code); error=1; - } - } - else - { - if (verbose) - printf("MySQL error code %3d: %s\n",code,msg); - else - puts(msg); + } + else + { + found= 1; + if (verbose) + printf("MySQL error code %3d: %s\n",code,msg); + else + puts(msg); + } } } } diff --git a/mysql-test/t/perror.test b/mysql-test/t/perror.test index 81847f85c96..63f2301f18e 100644 --- a/mysql-test/t/perror.test +++ b/mysql-test/t/perror.test @@ -9,3 +9,14 @@ enable_query_log; --exec $MY_PERROR 150 --exec $MY_PERROR --silent 120 +# +# Bug#16561 Unknown ERROR msg "ERROR 1186 (HY000): Binlog closed" by perror +# + +# As long there is no error code 1186 defined by NDB +# we should get a message "Illegal ndb error code: 1186" +--error 1 +--exec $MY_PERROR --ndb 1186 + +# As there is an error code defined for 1186, expect error +--exec $MY_PERROR 1186 diff --git a/ndb/src/kernel/error/ndbd_exit_codes.c b/ndb/src/kernel/error/ndbd_exit_codes.c index 07b276346a0..cb3272b38a9 100644 --- a/ndb/src/kernel/error/ndbd_exit_codes.c +++ b/ndb/src/kernel/error/ndbd_exit_codes.c @@ -247,7 +247,7 @@ int ndbd_exit_string(int err_no, char *str, unsigned int size) ndbd_exit_classification cl; ndbd_exit_status st; const char *msg = ndbd_exit_message(err_no, &cl); - if (msg[0] != '\0') + if (msg[0] != '\0' && cl != XUE) { const char *cl_msg = ndbd_exit_classification_message(cl, &st); const char *st_msg = ndbd_exit_status_message(st); |