From 26f0d72a3f9b92574b16fc0348f79f16ed8021d0 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Wed, 6 Mar 2019 17:08:03 +0400 Subject: [PATCH] A cleanup for MDEV-18333 Slow_queries count doesn't increase when slow_query_log is turned off thd->lex->m_sql_cmd was not cleared between queries. log_slow_query() could crash (when running mtr --ps) because of this. --- sql/sql_parse.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index b6ad9fa2be3..8da2a257df7 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1989,6 +1989,11 @@ bool dispatch_command(enum enum_server_command command, THD *thd, dec_thread_running(); thd->packet.shrink(thd->variables.net_buffer_length); // Reclaim some memory thd->reset_kill_query(); /* Ensure that killed_errmsg is released */ + /* + LEX::m_sql_cmd can point to Sql_cmd allocated on thd->mem_root. + Unlink it now, before freeing the root. + */ + thd->lex->m_sql_cmd= NULL; free_root(thd->mem_root,MYF(MY_KEEP_PREALLOC)); #if defined(ENABLED_PROFILING)