Set different deadlock_timeout on each session in new isolation tests
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 15 Jul 2011 22:43:33 +0000 (18:43 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 15 Jul 2011 22:43:33 +0000 (18:43 -0400)
This provides deterministic deadlock-detection ordering for new
isolation tests, fixing the sporadic failures in them.

Author: Noah Misch

src/test/isolation/expected/fk-deadlock.out
src/test/isolation/expected/fk-deadlock2.out
src/test/isolation/specs/fk-deadlock.spec
src/test/isolation/specs/fk-deadlock2.spec

index 6b6ee163c7c9cae11251fd1c74d47345f39cb71b..0d86cda1ca14d41ad066d55101ceb496c1014777 100644 (file)
@@ -32,8 +32,8 @@ step s1i:  INSERT INTO child VALUES (1, 1);
 step s2i:  INSERT INTO child VALUES (2, 1); 
 step s2u:  UPDATE parent SET aux = 'baz';  <waiting ...>
 step s1u:  UPDATE parent SET aux = 'bar'; 
-step s2u: <... completed>
 ERROR:  deadlock detected
+step s2u: <... completed>
 step s2c:  COMMIT; 
 step s1c:  COMMIT; 
 
@@ -52,8 +52,8 @@ step s2i:  INSERT INTO child VALUES (2, 1);
 step s1i:  INSERT INTO child VALUES (1, 1); 
 step s2u:  UPDATE parent SET aux = 'baz';  <waiting ...>
 step s1u:  UPDATE parent SET aux = 'bar'; 
-step s2u: <... completed>
 ERROR:  deadlock detected
+step s2u: <... completed>
 step s2c:  COMMIT; 
 step s1c:  COMMIT; 
 
index af3ce8ecfd3e82ac237f715312f914236add7458..6e7f12d165a895dd9cc2386de48fb249f271e330 100644 (file)
@@ -42,8 +42,8 @@ step s1u1:  UPDATE A SET Col1 = 1 WHERE AID = 1;
 step s2u1:  UPDATE B SET Col2 = 1 WHERE BID = 2; 
 step s2u2:  UPDATE B SET Col2 = 1 WHERE BID = 2;  <waiting ...>
 step s1u2:  UPDATE B SET Col2 = 1 WHERE BID = 2; 
-step s2u2: <... completed>
 ERROR:  deadlock detected
+step s2u2: <... completed>
 step s1c:  COMMIT; 
 step s2c:  COMMIT; 
 
@@ -52,8 +52,8 @@ step s1u1:  UPDATE A SET Col1 = 1 WHERE AID = 1;
 step s2u1:  UPDATE B SET Col2 = 1 WHERE BID = 2; 
 step s2u2:  UPDATE B SET Col2 = 1 WHERE BID = 2;  <waiting ...>
 step s1u2:  UPDATE B SET Col2 = 1 WHERE BID = 2; 
-step s2u2: <... completed>
 ERROR:  deadlock detected
+step s2u2: <... completed>
 step s2c:  COMMIT; 
 step s1c:  COMMIT; 
 
@@ -82,8 +82,8 @@ step s2u1:  UPDATE B SET Col2 = 1 WHERE BID = 2;
 step s1u1:  UPDATE A SET Col1 = 1 WHERE AID = 1; 
 step s2u2:  UPDATE B SET Col2 = 1 WHERE BID = 2;  <waiting ...>
 step s1u2:  UPDATE B SET Col2 = 1 WHERE BID = 2; 
-step s2u2: <... completed>
 ERROR:  deadlock detected
+step s2u2: <... completed>
 step s1c:  COMMIT; 
 step s2c:  COMMIT; 
 
@@ -92,8 +92,8 @@ step s2u1:  UPDATE B SET Col2 = 1 WHERE BID = 2;
 step s1u1:  UPDATE A SET Col1 = 1 WHERE AID = 1; 
 step s2u2:  UPDATE B SET Col2 = 1 WHERE BID = 2;  <waiting ...>
 step s1u2:  UPDATE B SET Col2 = 1 WHERE BID = 2; 
-step s2u2: <... completed>
 ERROR:  deadlock detected
+step s2u2: <... completed>
 step s2c:  COMMIT; 
 step s1c:  COMMIT; 
 
index 530cf108399060101b920a41c564606c22fef1e1..b533d77e0bc8524ec24cac3ec63c481d48a9fed6 100644 (file)
@@ -19,13 +19,13 @@ teardown
 }
 
 session "s1"
-setup      { BEGIN; }
+setup      { BEGIN; SET deadlock_timeout = '20ms'; }
 step "s1i" { INSERT INTO child VALUES (1, 1); }
 step "s1u" { UPDATE parent SET aux = 'bar'; }
 step "s1c" { COMMIT; }
 
 session "s2"
-setup      { BEGIN; }
+setup      { BEGIN; SET deadlock_timeout = '10s'; }
 step "s2i" { INSERT INTO child VALUES (2, 1); }
 step "s2u" { UPDATE parent SET aux = 'baz'; }
 step "s2c" { COMMIT; }
index 91a87d13ef56a2a5a63caeb2d44384b85ad8b372..5653628cf7c4d6a0d8fe98a4644710ae8b268c54 100644 (file)
@@ -24,13 +24,13 @@ teardown
 }
 
 session "s1"
-setup      { BEGIN; }
+setup      { BEGIN; SET deadlock_timeout = '20ms'; }
 step "s1u1"    { UPDATE A SET Col1 = 1 WHERE AID = 1; }
 step "s1u2"    { UPDATE B SET Col2 = 1 WHERE BID = 2; }
 step "s1c" { COMMIT; }
 
 session "s2"
-setup      { BEGIN; }
+setup      { BEGIN; SET deadlock_timeout = '10s'; }
 step "s2u1"    { UPDATE B SET Col2 = 1 WHERE BID = 2; }
 step "s2u2"    { UPDATE B SET Col2 = 1 WHERE BID = 2; }
 step "s2c" { COMMIT; }