Commit df9d8477 authored by Michael Widenius's avatar Michael Widenius

Automatic merge

parents 15c5a268 bebf3d1d
...@@ -4472,9 +4472,9 @@ sub extract_warning_lines ($$) { ...@@ -4472,9 +4472,9 @@ sub extract_warning_lines ($$) {
qr/Failed on request_dump/, qr/Failed on request_dump/,
qr/Slave: Can't drop database.* database doesn't exist/, qr/Slave: Can't drop database.* database doesn't exist/,
qr/Slave: Operation DROP USER failed for 'create_rout_db'/, qr/Slave: Operation DROP USER failed for 'create_rout_db'/,
qr|Checking table: '\./mtr/test_suppressions'|, qr|Checking table: '\..mtr.test_suppressions'|,
qr|Table \./test/bug53592 has a primary key in InnoDB data dictionary, but not in MySQL|, qr|Table \./test/bug53592 has a primary key in InnoDB data dictionary, but not in MySQL|,
qr|mysqld: Table '\./mtr/test_suppressions' is marked as crashed and should be repaired|, qr|mysqld: Table '\..mtr.test_suppressions' is marked as crashed and should be repaired|,
qr|Can't open shared library.*ha_archive|, qr|Can't open shared library.*ha_archive|,
qr|InnoDB: Error: table 'test/bug39438'|, qr|InnoDB: Error: table 'test/bug39438'|,
qr|Access denied for user|, qr|Access denied for user|,
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#endif #endif
/* /*
We are handling signals in this file. We are handling signals/exceptions in this file.
Any global variables we read should be 'volatile sig_atomic_t' Any global variables we read should be 'volatile sig_atomic_t'
to guarantee that we read some consistent value. to guarantee that we read some consistent value.
*/ */
...@@ -40,20 +40,18 @@ extern volatile sig_atomic_t ld_assume_kernel_is_set; ...@@ -40,20 +40,18 @@ extern volatile sig_atomic_t ld_assume_kernel_is_set;
#endif #endif
/** /**
* Handler for fatal signals * Handler for fatal signals on POSIX, exception handler on Windows.
* *
* Fatal events (seg.fault, bus error etc.) will trigger * Fatal events (seg.fault, bus error etc.) will trigger
* this signal handler. The handler will try to dump relevant * this signal handler. The handler will try to dump relevant
* debugging information to stderr and dump a core image. * debugging information to stderr and dump a core image.
* *
* Signal handlers can only use a set of 'safe' system calls * POSIX : Signal handlers should, if possible, only use a set of 'safe' system
* and library functions. A list of safe calls in POSIX systems * calls and library functions. A list of safe calls in POSIX systems
* are available at: * are available at:
* http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html * http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html
* For MS Windows, guidelines are available at:
* http://msdn.microsoft.com/en-us/library/xdkz3x12(v=vs.71).aspx
* *
* @param sig Signal number * @param sig Signal number /Exception code
*/ */
extern "C" sig_handler handle_fatal_signal(int sig) extern "C" sig_handler handle_fatal_signal(int sig)
{ {
...@@ -77,7 +75,13 @@ extern "C" sig_handler handle_fatal_signal(int sig) ...@@ -77,7 +75,13 @@ extern "C" sig_handler handle_fatal_signal(int sig)
my_safe_printf_stderr("%02d%02d%02d %2d:%02d:%02d ", my_safe_printf_stderr("%02d%02d%02d %2d:%02d:%02d ",
tm.tm_year % 100, tm.tm_mon+1, tm.tm_mday, tm.tm_year % 100, tm.tm_mon+1, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec); tm.tm_hour, tm.tm_min, tm.tm_sec);
if (opt_expect_abort && sig == SIGABRT) if (opt_expect_abort
#ifdef _WIN32
&& sig == EXCEPTION_BREAKPOINT /* __debugbreak in my_sigabrt_hander() */
#else
&& sig == SIGABRT
#endif
)
{ {
fprintf(stderr,"[Note] mysqld did an expected abort\n"); fprintf(stderr,"[Note] mysqld did an expected abort\n");
goto end; goto end;
...@@ -88,10 +92,10 @@ extern "C" sig_handler handle_fatal_signal(int sig) ...@@ -88,10 +92,10 @@ extern "C" sig_handler handle_fatal_signal(int sig)
my_safe_printf_stderr("%s", my_safe_printf_stderr("%s",
"This could be because you hit a bug. It is also possible that this binary\n" "This could be because you hit a bug. It is also possible that this binary\n"
"or one of the libraries it was linked against is corrupt, improperly built,\n" "or one of the libraries it was linked against is corrupt, improperly built,\n"
"or misconfigured. This error can also be caused by malfunctioning hardware.\n"); "or misconfigured. This error can also be caused by malfunctioning hardware.\n\n");
my_safe_printf_stderr("%s", my_safe_printf_stderr("%s",
"To report this bug, see http://kb.askmonty.org/en/reporting-bugs\n"); "To report this bug, see http://kb.askmonty.org/en/reporting-bugs\n\n");
my_safe_printf_stderr("%s", my_safe_printf_stderr("%s",
"We will try our best to scrape up some info that will hopefully help\n" "We will try our best to scrape up some info that will hopefully help\n"
...@@ -276,5 +280,7 @@ extern "C" sig_handler handle_fatal_signal(int sig) ...@@ -276,5 +280,7 @@ extern "C" sig_handler handle_fatal_signal(int sig)
On Windows, do not terminate, but pass control to exception filter. On Windows, do not terminate, but pass control to exception filter.
*/ */
_exit(1); // Using _exit(), since exit() is not async signal safe _exit(1); // Using _exit(), since exit() is not async signal safe
#else
return;
#endif #endif
} }
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