mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
BUG#20676: debug warnings about too many lock waiters cause test failure.
The 250 simultaneous events all accessing the same table caused the events_stress test to fail due to debug warnings about too many table waiters. Fixed by using three different tables. mysql-test/r/events_stress.result: Use three different MyISAM tables to avoid debug warnings about too many locks. mysql-test/t/events_stress.test: Use three different MyISAM tables to avoid debug warnings about too many locks.
This commit is contained in:
@ -1,6 +1,8 @@
|
|||||||
CREATE DATABASE IF NOT EXISTS events_test;
|
CREATE DATABASE IF NOT EXISTS events_test;
|
||||||
CREATE DATABASE events_conn1_test2;
|
CREATE DATABASE events_conn1_test2;
|
||||||
CREATE TABLE events_test.fill_it(test_name varchar(20), occur datetime);
|
CREATE TABLE events_test.fill_it1(test_name varchar(20), occur datetime);
|
||||||
|
CREATE TABLE events_test.fill_it2(test_name varchar(20), occur datetime);
|
||||||
|
CREATE TABLE events_test.fill_it3(test_name varchar(20), occur datetime);
|
||||||
CREATE USER event_user2@localhost;
|
CREATE USER event_user2@localhost;
|
||||||
CREATE DATABASE events_conn2_db;
|
CREATE DATABASE events_conn2_db;
|
||||||
GRANT ALL ON *.* TO event_user2@localhost;
|
GRANT ALL ON *.* TO event_user2@localhost;
|
||||||
@ -57,5 +59,7 @@ SET GLOBAL event_scheduler=2;
|
|||||||
DROP DATABASE events_conn1_test4;
|
DROP DATABASE events_conn1_test4;
|
||||||
SET GLOBAL event_scheduler=1;
|
SET GLOBAL event_scheduler=1;
|
||||||
USE events_test;
|
USE events_test;
|
||||||
DROP TABLE fill_it;
|
DROP TABLE fill_it1;
|
||||||
|
DROP TABLE fill_it2;
|
||||||
|
DROP TABLE fill_it3;
|
||||||
DROP DATABASE events_test;
|
DROP DATABASE events_test;
|
||||||
|
@ -3,7 +3,11 @@ CREATE DATABASE IF NOT EXISTS events_test;
|
|||||||
# DROP DATABASE test start (bug #16406)
|
# DROP DATABASE test start (bug #16406)
|
||||||
#
|
#
|
||||||
CREATE DATABASE events_conn1_test2;
|
CREATE DATABASE events_conn1_test2;
|
||||||
CREATE TABLE events_test.fill_it(test_name varchar(20), occur datetime);
|
# BUG#20676: MySQL in debug mode has a limit of 100 waiters
|
||||||
|
# (in mysys/thr_lock.c), so use three different tables to insert into.
|
||||||
|
CREATE TABLE events_test.fill_it1(test_name varchar(20), occur datetime);
|
||||||
|
CREATE TABLE events_test.fill_it2(test_name varchar(20), occur datetime);
|
||||||
|
CREATE TABLE events_test.fill_it3(test_name varchar(20), occur datetime);
|
||||||
CREATE USER event_user2@localhost;
|
CREATE USER event_user2@localhost;
|
||||||
CREATE DATABASE events_conn2_db;
|
CREATE DATABASE events_conn2_db;
|
||||||
GRANT ALL ON *.* TO event_user2@localhost;
|
GRANT ALL ON *.* TO event_user2@localhost;
|
||||||
@ -16,7 +20,7 @@ connect (conn2,localhost,event_user2,,events_conn2_db);
|
|||||||
let $1= 50;
|
let $1= 50;
|
||||||
while ($1)
|
while ($1)
|
||||||
{
|
{
|
||||||
eval CREATE EVENT conn2_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it VALUES("conn2_ev$1", NOW());
|
eval CREATE EVENT conn2_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it1 VALUES("conn2_ev$1", NOW());
|
||||||
dec $1;
|
dec $1;
|
||||||
}
|
}
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
@ -26,7 +30,7 @@ connect (conn3,localhost,event_user3,,events_conn3_db);
|
|||||||
let $1= 50;
|
let $1= 50;
|
||||||
while ($1)
|
while ($1)
|
||||||
{
|
{
|
||||||
eval CREATE EVENT conn3_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it VALUES("conn3_ev$1", NOW());
|
eval CREATE EVENT conn3_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it1 VALUES("conn3_ev$1", NOW());
|
||||||
dec $1;
|
dec $1;
|
||||||
}
|
}
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
@ -48,7 +52,7 @@ USE events_conn1_test2;
|
|||||||
let $1= 50;
|
let $1= 50;
|
||||||
while ($1)
|
while ($1)
|
||||||
{
|
{
|
||||||
eval CREATE EVENT conn1_round1_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it VALUES("conn1_round1_ev$1", NOW());
|
eval CREATE EVENT conn1_round1_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it2 VALUES("conn1_round1_ev$1", NOW());
|
||||||
dec $1;
|
dec $1;
|
||||||
}
|
}
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
@ -65,7 +69,7 @@ USE events_conn1_test3;
|
|||||||
let $1= 50;
|
let $1= 50;
|
||||||
while ($1)
|
while ($1)
|
||||||
{
|
{
|
||||||
eval CREATE EVENT conn1_round2_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it VALUES("conn1_round2_ev$1", NOW());
|
eval CREATE EVENT conn1_round2_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it2 VALUES("conn1_round2_ev$1", NOW());
|
||||||
dec $1;
|
dec $1;
|
||||||
}
|
}
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
@ -77,7 +81,7 @@ USE events_conn1_test4;
|
|||||||
let $1= 50;
|
let $1= 50;
|
||||||
while ($1)
|
while ($1)
|
||||||
{
|
{
|
||||||
eval CREATE EVENT conn1_round3_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it VALUES("conn1_round3_ev$1", NOW());
|
eval CREATE EVENT conn1_round3_ev$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it3 VALUES("conn1_round3_ev$1", NOW());
|
||||||
dec $1;
|
dec $1;
|
||||||
}
|
}
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
@ -88,7 +92,7 @@ USE events_conn1_test2;
|
|||||||
let $1= 50;
|
let $1= 50;
|
||||||
while ($1)
|
while ($1)
|
||||||
{
|
{
|
||||||
eval CREATE EVENT ev_round4_drop$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it VALUES("conn1_round4_ev$1", NOW());
|
eval CREATE EVENT ev_round4_drop$1 ON SCHEDULE EVERY 1 SECOND DO INSERT INTO events_test.fill_it3 VALUES("conn1_round4_ev$1", NOW());
|
||||||
dec $1;
|
dec $1;
|
||||||
}
|
}
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
@ -115,7 +119,9 @@ reap;
|
|||||||
disconnect conn3;
|
disconnect conn3;
|
||||||
connection default;
|
connection default;
|
||||||
USE events_test;
|
USE events_test;
|
||||||
DROP TABLE fill_it;
|
DROP TABLE fill_it1;
|
||||||
|
DROP TABLE fill_it2;
|
||||||
|
DROP TABLE fill_it3;
|
||||||
--disable_query_log
|
--disable_query_log
|
||||||
DROP USER event_user2@localhost;
|
DROP USER event_user2@localhost;
|
||||||
DROP USER event_user3@localhost;
|
DROP USER event_user3@localhost;
|
||||||
|
Reference in New Issue
Block a user