summaryrefslogtreecommitdiff
path: root/sql/sql_class.h
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2018-01-12 18:17:55 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2018-01-14 10:49:56 +0100
commit5fe1d7d07611855963ea62ca39461289d8f8d25e (patch)
treecacc2b5537b2f8fa10db368a25fd3c8c5a2ac49b /sql/sql_class.h
parentb75d767689aff33f4d6963169bb7044165494885 (diff)
downloadmariadb-git-5fe1d7d07611855963ea62ca39461289d8f8d25e.tar.gz
MDEV-14526: MariaDB keeps crashing under load when query_cache_type is changed
The problem was in such scenario: T1 - starts registering query and locked QC T2 - starts disabling QC and wait for UNLOCK T1 - unlock QC T2 - disable QC and destroy signals without waiting for query unlock T1 a) - not yet unlocked query in qc and crash on attempt to unlock because QC signals are destroyed b) if above was done before destruction, it execute end_of results first time at exit on after try_lock which see QC disables and return TRUE. But it do not reset query_cache_tls->first_query_block which lead to second call of end_of_result when diagnostic arena has already inappropriate status (not is_eof()). Fix is: 1) wait for all queries unlocked before destroying them by locking and unlocking 2) remove query_cache_tls->first_query_block if QC disabled
Diffstat (limited to 'sql/sql_class.h')
0 files changed, 0 insertions, 0 deletions