Commit d2b9c8c2 authored by unknown's avatar unknown

Fix an unstable test.


mysql-test/r/log_tables.result:
  Update results.
mysql-test/t/log_tables.test:
  Silence a race condition: TRUNCATE code issues mysql_frm_type without
  a metadata lock, and finds no table if hits the moment when
  ALTER is swapping two tables.
parent 8e62e86f
...@@ -415,6 +415,8 @@ use test// ...@@ -415,6 +415,8 @@ use test//
create procedure proc25422_truncate_slow (loops int) create procedure proc25422_truncate_slow (loops int)
begin begin
declare v1 int default 0; declare v1 int default 0;
declare continue handler for sqlexception /* errors from truncate */
begin end;
while v1 < loops do while v1 < loops do
truncate mysql.slow_log; truncate mysql.slow_log;
set v1 = v1 + 1; set v1 = v1 + 1;
...@@ -423,6 +425,8 @@ end// ...@@ -423,6 +425,8 @@ end//
create procedure proc25422_truncate_general (loops int) create procedure proc25422_truncate_general (loops int)
begin begin
declare v1 int default 0; declare v1 int default 0;
declare continue handler for sqlexception /* errors from truncate */
begin end;
while v1 < loops do while v1 < loops do
truncate mysql.general_log; truncate mysql.general_log;
set v1 = v1 + 1; set v1 = v1 + 1;
...@@ -454,23 +458,24 @@ set global general_log = @old_log_state; ...@@ -454,23 +458,24 @@ set global general_log = @old_log_state;
set v1 = v1 + 1; set v1 = v1 + 1;
end while; end while;
end// end//
set @iterations=100;
"Serial test (proc25422_truncate_slow)" "Serial test (proc25422_truncate_slow)"
call proc25422_truncate_slow(100); call proc25422_truncate_slow(@iterations);
"Serial test (proc25422_truncate_general)" "Serial test (proc25422_truncate_general)"
call proc25422_truncate_general(100); call proc25422_truncate_general(@iterations);
"Serial test (proc25422_alter_slow)" "Serial test (proc25422_alter_slow)"
call proc25422_alter_slow(100); call proc25422_alter_slow(@iterations);
"Serial test (proc25422_alter_general)" "Serial test (proc25422_alter_general)"
call proc25422_alter_general(100); call proc25422_alter_general(@iterations);
"Parallel test" "Parallel test"
call proc25422_truncate_slow(100); call proc25422_truncate_slow(@iterations);
call proc25422_truncate_slow(100); call proc25422_truncate_slow(@iterations);
call proc25422_truncate_general(100); call proc25422_truncate_general(@iterations);
call proc25422_truncate_general(100); call proc25422_truncate_general(@iterations);
call proc25422_alter_slow(100); call proc25422_alter_slow(@iterations);
call proc25422_alter_slow(100); call proc25422_alter_slow(@iterations);
call proc25422_alter_general(100); call proc25422_alter_general(@iterations);
call proc25422_alter_general(100); call proc25422_alter_general(@iterations);
drop procedure proc25422_truncate_slow; drop procedure proc25422_truncate_slow;
drop procedure proc25422_truncate_general; drop procedure proc25422_truncate_general;
drop procedure proc25422_alter_slow; drop procedure proc25422_alter_slow;
......
...@@ -460,6 +460,8 @@ use test// ...@@ -460,6 +460,8 @@ use test//
create procedure proc25422_truncate_slow (loops int) create procedure proc25422_truncate_slow (loops int)
begin begin
declare v1 int default 0; declare v1 int default 0;
declare continue handler for sqlexception /* errors from truncate */
begin end;
while v1 < loops do while v1 < loops do
truncate mysql.slow_log; truncate mysql.slow_log;
set v1 = v1 + 1; set v1 = v1 + 1;
...@@ -469,6 +471,8 @@ end// ...@@ -469,6 +471,8 @@ end//
create procedure proc25422_truncate_general (loops int) create procedure proc25422_truncate_general (loops int)
begin begin
declare v1 int default 0; declare v1 int default 0;
declare continue handler for sqlexception /* errors from truncate */
begin end;
while v1 < loops do while v1 < loops do
truncate mysql.general_log; truncate mysql.general_log;
set v1 = v1 + 1; set v1 = v1 + 1;
...@@ -507,14 +511,16 @@ end// ...@@ -507,14 +511,16 @@ end//
delimiter ;// delimiter ;//
set @iterations=100;
--echo "Serial test (proc25422_truncate_slow)" --echo "Serial test (proc25422_truncate_slow)"
call proc25422_truncate_slow(100); call proc25422_truncate_slow(@iterations);
--echo "Serial test (proc25422_truncate_general)" --echo "Serial test (proc25422_truncate_general)"
call proc25422_truncate_general(100); call proc25422_truncate_general(@iterations);
--echo "Serial test (proc25422_alter_slow)" --echo "Serial test (proc25422_alter_slow)"
call proc25422_alter_slow(100); call proc25422_alter_slow(@iterations);
--echo "Serial test (proc25422_alter_general)" --echo "Serial test (proc25422_alter_general)"
call proc25422_alter_general(100); call proc25422_alter_general(@iterations);
--echo "Parallel test" --echo "Parallel test"
...@@ -532,24 +538,24 @@ connect (addconroot7, localhost, root,,); ...@@ -532,24 +538,24 @@ connect (addconroot7, localhost, root,,);
connect (addconroot8, localhost, root,,); connect (addconroot8, localhost, root,,);
connection addconroot1; connection addconroot1;
send call proc25422_truncate_slow(100); send call proc25422_truncate_slow(@iterations);
connection addconroot2; connection addconroot2;
send call proc25422_truncate_slow(100); send call proc25422_truncate_slow(@iterations);
connection addconroot3; connection addconroot3;
send call proc25422_truncate_general(100); send call proc25422_truncate_general(@iterations);
connection addconroot4; connection addconroot4;
send call proc25422_truncate_general(100); send call proc25422_truncate_general(@iterations);
connection addconroot5; connection addconroot5;
send call proc25422_alter_slow(100); send call proc25422_alter_slow(@iterations);
connection addconroot6; connection addconroot6;
send call proc25422_alter_slow(100); send call proc25422_alter_slow(@iterations);
connection addconroot7; connection addconroot7;
send call proc25422_alter_general(100); send call proc25422_alter_general(@iterations);
connection addconroot8; connection addconroot8;
send call proc25422_alter_general(100); send call proc25422_alter_general(@iterations);
connection addconroot1; connection addconroot1;
reap; reap;
......
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