Commit 1ef08c91 authored by unknown's avatar unknown

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.
parent acd7132e
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; ...@@ -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; ...@@ -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); ...@@ -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); ...@@ -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; ...@@ -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; ...@@ -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; ...@@ -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; ...@@ -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; ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment