Commit bcd854fe authored by Sergey Petrunya's avatar Sergey Petrunya

MDEV-5308 Crash when running with slow_query_log=1

- Make log_slow_statement() always call delete_explain_query().
parent 146c8a48
......@@ -39,3 +39,15 @@ SELECT 'Server still alive?' as 'Yes';
Yes
Server still alive?
DROP TABLE t1;
#
# MDEV-5308 Crash when running with slow_query_log=1
#
SET @save1= @@log_slow_rate_limit;
SET @save2= @@long_query_time;
SET log_slow_rate_limit=1000;
SET long_query_time=0.000001;
SELECT 1;
1
1
SET log_slow_rate_limit=@save1;
SET long_query_time=@save2;
......@@ -47,3 +47,17 @@ SET max_join_size = 10;
SELECT 'Server still alive?' as 'Yes';
DROP TABLE t1;
--echo #
--echo # MDEV-5308 Crash when running with slow_query_log=1
--echo #
SET @save1= @@log_slow_rate_limit;
SET @save2= @@long_query_time;
SET log_slow_rate_limit=1000;
SET long_query_time=0.000001;
SELECT 1;
SET log_slow_rate_limit=@save1;
SET long_query_time=@save2;
......@@ -1554,7 +1554,7 @@ void log_slow_statement(THD *thd)
statement in a trigger or stored function
*/
if (unlikely(thd->in_sub_stmt))
DBUG_VOID_RETURN; // Don't set time for sub stmt
goto end; // Don't set time for sub stmt
/* Follow the slow log filter configuration. */
......@@ -1562,8 +1562,7 @@ void log_slow_statement(THD *thd)
(thd->variables.log_slow_filter
&& !(thd->variables.log_slow_filter & thd->query_plan_flags)))
{
delete_explain_query(thd->lex);
DBUG_VOID_RETURN;
goto end;
}
if (((thd->server_status & SERVER_QUERY_WAS_SLOW) ||
......@@ -1580,7 +1579,7 @@ void log_slow_statement(THD *thd)
*/
if (thd->variables.log_slow_rate_limit > 1 &&
(global_query_id % thd->variables.log_slow_rate_limit) != 0)
DBUG_VOID_RETURN;
goto end;
thd_proc_info(thd, "logging slow query");
slow_log_print(thd, thd->query(), thd->query_length(),
......@@ -1588,6 +1587,7 @@ void log_slow_statement(THD *thd)
thd_proc_info(thd, 0);
}
end:
delete_explain_query(thd->lex);
DBUG_VOID_RETURN;
}
......
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