mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
Bug #46212 safe_process: FATAL ERROR, Unknown option: --nocore
Also fixed mysqld.cc to avoid popup-boxes
This commit is contained in:
parent
b9720c7170
commit
a80bd0b5d7
2 changed files with 29 additions and 20 deletions
|
@ -163,6 +163,7 @@ int main(int argc, const char** argv )
|
|||
HANDLE job_handle;
|
||||
HANDLE wait_handles[NUM_HANDLES]= {0};
|
||||
PROCESS_INFORMATION process_info= {0};
|
||||
BOOL nocore= FALSE;
|
||||
|
||||
sprintf(safe_process_name, "safe_process[%d]", pid);
|
||||
|
||||
|
@ -199,18 +200,22 @@ int main(int argc, const char** argv )
|
|||
}
|
||||
break;
|
||||
} else {
|
||||
if ( strcmp(arg, "--verbose") == 0 )
|
||||
if (strcmp(arg, "--verbose") == 0)
|
||||
verbose++;
|
||||
else if ( strncmp(arg, "--parent-pid", 10) == 0 )
|
||||
{
|
||||
/* Override parent_pid with a value provided by user */
|
||||
const char* start;
|
||||
else if (strncmp(arg, "--parent-pid", 10) == 0)
|
||||
{
|
||||
/* Override parent_pid with a value provided by user */
|
||||
const char* start;
|
||||
if ((start= strstr(arg, "=")) == NULL)
|
||||
die("Could not find start of option value in '%s'", arg);
|
||||
start++; /* Step past = */
|
||||
if ((parent_pid= atoi(start)) == 0)
|
||||
die("Invalid value '%s' passed to --parent-id", start);
|
||||
}
|
||||
die("Could not find start of option value in '%s'", arg);
|
||||
start++; /* Step past = */
|
||||
if ((parent_pid= atoi(start)) == 0)
|
||||
die("Invalid value '%s' passed to --parent-id", start);
|
||||
}
|
||||
else if (strcmp(arg, "--nocore") == 0)
|
||||
{
|
||||
nocore= TRUE;
|
||||
}
|
||||
else
|
||||
die("Unknown option: %s", arg);
|
||||
}
|
||||
|
@ -248,6 +253,11 @@ int main(int argc, const char** argv )
|
|||
&jeli, sizeof(jeli)) == 0)
|
||||
message("SetInformationJobObject failed, continue anyway...");
|
||||
|
||||
/* Avoid popup box */
|
||||
if (nocore)
|
||||
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX
|
||||
| SEM_NOOPENFILEERRORBOX);
|
||||
|
||||
#if 0
|
||||
/* Setup stdin, stdout and stderr redirect */
|
||||
si.dwFlags= STARTF_USESTDHANDLES;
|
||||
|
|
|
@ -2103,15 +2103,14 @@ static void init_signals(void)
|
|||
win_install_sigabrt_handler();
|
||||
if(opt_console)
|
||||
SetConsoleCtrlHandler(console_event_handler,TRUE);
|
||||
else
|
||||
{
|
||||
|
||||
/* Avoid MessageBox()es*/
|
||||
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
|
||||
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
|
||||
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
|
||||
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
|
||||
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
|
||||
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
|
||||
|
||||
/*
|
||||
Do not use SEM_NOGPFAULTERRORBOX in the following SetErrorMode (),
|
||||
|
@ -2120,8 +2119,8 @@ static void init_signals(void)
|
|||
exception filter is not guaranteed to work in all situation
|
||||
(like heap corruption or stack overflow)
|
||||
*/
|
||||
SetErrorMode(SetErrorMode(0)|SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX);
|
||||
}
|
||||
SetErrorMode(SetErrorMode(0) | SEM_FAILCRITICALERRORS
|
||||
| SEM_NOOPENFILEERRORBOX);
|
||||
SetUnhandledExceptionFilter(my_unhandler_exception_filter);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue