Commit d8c8fd5b authored by unknown's avatar unknown

Fix for Bug#33065: Mysql not writing general query logs after

sending SIGHUP.

There were two problems:
  - after some recent fix, the server started to crash after
    receiving SIGHUP. That happened because LEX of new THD-object
    was not properly initialized.
  - user-specified log options were ignored when logs were reopened.

The fix is to 1) initialize LEX and 2) take user-specified options
into account.

There is no test case in this CS, because our test suite does not
support sending SIGHUP to the server.


sql/mysqld.cc:
  Use proper logging after SIGHUP.
sql/sql_parse.cc:
  Initialize LEX of new THD -- it is required to avoid crash
  in SIGHUP handling.
parent ffd88cb2
...@@ -2573,8 +2573,18 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused))) ...@@ -2573,8 +2573,18 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused)))
(TABLE_LIST*) 0, &not_used); // Flush logs (TABLE_LIST*) 0, &not_used); // Flush logs
} }
/* reenable logs after the options were reloaded */ /* reenable logs after the options were reloaded */
logger.set_handlers(LOG_FILE, opt_slow_log ? LOG_TABLE:LOG_NONE, if (log_output_options & LOG_NONE)
opt_log ? LOG_TABLE:LOG_NONE); {
logger.set_handlers(LOG_FILE,
opt_slow_log ? LOG_TABLE : LOG_NONE,
opt_log ? LOG_TABLE : LOG_NONE);
}
else
{
logger.set_handlers(LOG_FILE,
opt_slow_log ? log_output_options : LOG_NONE,
opt_log ? log_output_options : LOG_NONE);
}
break; break;
#ifdef USE_ONE_SIGNAL_HAND #ifdef USE_ONE_SIGNAL_HAND
case THR_SERVER_ALARM: case THR_SERVER_ALARM:
......
...@@ -6448,6 +6448,7 @@ bool reload_acl_and_cache(THD *thd, ulong options, TABLE_LIST *tables, ...@@ -6448,6 +6448,7 @@ bool reload_acl_and_cache(THD *thd, ulong options, TABLE_LIST *tables,
{ {
thd->thread_stack= (char*) &tmp_thd; thd->thread_stack= (char*) &tmp_thd;
thd->store_globals(); thd->store_globals();
lex_start(thd);
} }
if (thd) if (thd)
{ {
......
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