mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
46 lines
1.5 KiB
Text
46 lines
1.5 KiB
Text
--source include/not_embedded.inc
|
|
--source include/have_query_cache.inc
|
|
--source include/have_debug.inc
|
|
|
|
#
|
|
# Bug #30887 Server crashes on SET GLOBAL query_cache_size=0
|
|
#
|
|
flush status;
|
|
set query_cache_type=DEMAND;
|
|
set global query_cache_size= 1024*1024*512;
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
create table t1 (a varchar(100));
|
|
insert into t1 values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
|
|
connect (bug30887con1, localhost, root, ,test);
|
|
connect (bug30887con2, localhost, root, ,test);
|
|
|
|
connection bug30887con1;
|
|
--echo Activate debug hook and attempt to retrieve the statement from the cache.
|
|
set session debug='+d,wait_in_query_cache_insert';
|
|
--send select SQL_CACHE * from t1;
|
|
|
|
connection default;
|
|
let $wait_condition= select count(*)= 1 from information_schema.processlist where state= 'wait_in_query_cache_insert';
|
|
--source include/wait_condition.inc
|
|
|
|
connection bug30887con2;
|
|
--echo On a second connection; clear the query cache.
|
|
show status like 'Qcache_queries_in_cache';
|
|
set global query_cache_size= 0;
|
|
|
|
connection default;
|
|
--echo Signal the debug hook to release the lock.
|
|
select id from information_schema.processlist where state='wait_in_query_cache_insert' into @thread_id;
|
|
kill query @thread_id;
|
|
|
|
--echo Show query cache status.
|
|
show status like 'Qcache_queries_in_cache';
|
|
|
|
disconnect bug30887con1;
|
|
disconnect bug30887con2;
|
|
set global query_cache_size= 0;
|
|
use test;
|
|
drop table t1;
|
|
|