diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2015-10-01 11:35:18 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2015-10-01 11:35:18 +0400 |
commit | 07e02ea25df601300deedce321f383ded28c1b6c (patch) | |
tree | ce8c38ba64c63ac60b4d293423eca7b89ae90320 | |
parent | 3266216f2c8f90c866b371fbd4a8bf6b0c628996 (diff) | |
download | mariadb-git-bb-svoj.tar.gz |
MDEV-8836 - Server crashed in my_copy_8bit on querying I_S.PROCESSLISTbb-svoj
Fixed race condition in code filling INFORMATION_SCHEMA.PROCESSLIST.INFO_BINARY.
When loading query string/length of another connection one must have
LOCK_thd_data locked.
-rw-r--r-- | sql/sql_show.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/sql/sql_show.cc b/sql/sql_show.cc index f64c30b88f5..bcc799dce7e 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2888,6 +2888,15 @@ int fill_schema_processlist(THD* thd, TABLE_LIST* tables, COND* cond) table->field[7]->set_notnull(); } + /* INFO_BINARY */ + if (tmp->query()) + { + table->field[15]->store(tmp->query(), + MY_MIN(PROCESS_LIST_INFO_WIDTH, + tmp->query_length()), &my_charset_bin); + table->field[15]->set_notnull(); + } + /* Progress report. We need to do this under a lock to ensure that all is from the same stage. @@ -2916,15 +2925,6 @@ int fill_schema_processlist(THD* thd, TABLE_LIST* tables, COND* cond) /* QUERY_ID */ table->field[14]->store(tmp->query_id, TRUE); - /* INFO_BINARY */ - if (tmp->query()) - { - table->field[15]->store(tmp->query(), - MY_MIN(PROCESS_LIST_INFO_WIDTH, - tmp->query_length()), &my_charset_bin); - table->field[15]->set_notnull(); - } - table->field[16]->store(tmp->os_thread_id); if (schema_table_store_record(thd, table)) |