mariadb/mysql-test/t/innodb-timeout.test
unknown 159ff4c12c Fixes for some randomly occuring test failures in Buildbot.
mysql-test/r/innodb-timeout.result:
  Make test more robust to scheduling delays on the host running the test suite.
mysql-test/suite/rpl/r/rpl_relayspace.result:
  Apply patch from BUG#25228 and tweak timeout value in an attempt to fix random
  failure of this test in Buildbot (could not repeat locally).
mysql-test/suite/rpl/t/rpl_relayspace.test:
  Apply patch from BUG#25228 and tweak timeout value in an attempt to fix random
  failure of this test in Buildbot (could not repeat locally).
mysql-test/t/innodb-timeout.test:
  Make test more robust to scheduling delays on the host running the test suite.
mysql-test/valgrind.supp:
  Add suppression for Glibc bug.
2010-01-18 13:56:10 +01:00

69 lines
1.5 KiB
Text

-- source include/have_innodb.inc
let $timeout=`select @@innodb_lock_wait_timeout`;
set global innodb_lock_wait_timeout=42;
connect (a,localhost,root,,);
connect (b,localhost,root,,);
connection a;
select @@innodb_lock_wait_timeout;
set innodb_lock_wait_timeout=1;
select @@innodb_lock_wait_timeout;
connection b;
select @@innodb_lock_wait_timeout;
set global innodb_lock_wait_timeout=347;
select @@innodb_lock_wait_timeout;
set innodb_lock_wait_timeout=1;
select @@innodb_lock_wait_timeout;
connect (c,localhost,root,,);
connection c;
select @@innodb_lock_wait_timeout;
connection default;
disconnect c;
connection a;
create table t1(a int primary key)engine=innodb;
begin;
insert into t1 values(1),(2),(3);
connection b;
set innodb_lock_wait_timeout=5;
--send
select * from t1 for update;
connection a;
commit;
connection b;
reap;
connection a;
begin;
insert into t1 values(4);
connection b;
# Test that we get a lock timeout.
# We cannot reliably test that the timeout is exactly 1 seconds due to
# process scheduling differences on the host running the test suite. But we
# can test that we are within reasonable range.
set innodb_lock_wait_timeout=2;
set @a= current_timestamp();
--error ER_LOCK_WAIT_TIMEOUT
select * from t1 for update;
set @b= current_timestamp();
set @c= timestampdiff(SECOND, @a, @b);
select if(@c >= 1 and @c <= 10, 'OK', concat("NOT OK, time passed=", @c));
connection a;
commit;
drop table t1;
connection default;
disconnect a;
disconnect b;
eval set global innodb_lock_wait_timeout=$timeout;