|
| 1 | +# This is a straightforward deadlock scenario. Since it involves more than |
| 2 | +# two processes, the mainlock detector will find the problem and rollback the |
| 3 | +# backend which discovers it. |
| 4 | + |
| 5 | +setup |
| 6 | +{ |
| 7 | +CREATETABLEa1 (); |
| 8 | +CREATETABLEa2 (); |
| 9 | +CREATETABLEa3 (); |
| 10 | +CREATETABLEa4 (); |
| 11 | +CREATETABLEa5 (); |
| 12 | +CREATETABLEa6 (); |
| 13 | +CREATETABLEa7 (); |
| 14 | +CREATETABLEa8 (); |
| 15 | +} |
| 16 | + |
| 17 | +teardown |
| 18 | +{ |
| 19 | +DROPTABLEa1,a2,a3,a4,a5,a6,a7,a8; |
| 20 | +} |
| 21 | + |
| 22 | +session"s1" |
| 23 | +setup{BEGIN;SETdeadlock_timeout='10s'; } |
| 24 | +step"s1a1"{LOCKTABLEa1; } |
| 25 | +step"s1a2"{LOCKTABLEa2; } |
| 26 | +step"s1c"{COMMIT; } |
| 27 | + |
| 28 | +session"s2" |
| 29 | +setup{BEGIN;SETdeadlock_timeout='10s'; } |
| 30 | +step"s2a2"{LOCKTABLEa2; } |
| 31 | +step"s2a3"{LOCKTABLEa3; } |
| 32 | +step"s2c"{COMMIT; } |
| 33 | + |
| 34 | +session"s3" |
| 35 | +setup{BEGIN;SETdeadlock_timeout='10s'; } |
| 36 | +step"s3a3"{LOCKTABLEa3; } |
| 37 | +step"s3a4"{LOCKTABLEa4; } |
| 38 | +step"s3c"{COMMIT; } |
| 39 | + |
| 40 | +session"s4" |
| 41 | +setup{BEGIN;SETdeadlock_timeout='10s'; } |
| 42 | +step"s4a4"{LOCKTABLEa4; } |
| 43 | +step"s4a5"{LOCKTABLEa5; } |
| 44 | +step"s4c"{COMMIT; } |
| 45 | + |
| 46 | +session"s5" |
| 47 | +setup{BEGIN;SETdeadlock_timeout='10s'; } |
| 48 | +step"s5a5"{LOCKTABLEa5; } |
| 49 | +step"s5a6"{LOCKTABLEa6; } |
| 50 | +step"s5c"{COMMIT; } |
| 51 | + |
| 52 | +session"s6" |
| 53 | +setup{BEGIN;SETdeadlock_timeout='10s'; } |
| 54 | +step"s6a6"{LOCKTABLEa6; } |
| 55 | +step"s6a7"{LOCKTABLEa7; } |
| 56 | +step"s6c"{COMMIT; } |
| 57 | + |
| 58 | +session"s7" |
| 59 | +setup{BEGIN;SETdeadlock_timeout='10s'; } |
| 60 | +step"s7a7"{LOCKTABLEa7; } |
| 61 | +step"s7a8"{LOCKTABLEa8; } |
| 62 | +step"s7c"{COMMIT; } |
| 63 | + |
| 64 | +session"s8" |
| 65 | +setup{BEGIN;SETdeadlock_timeout='10ms'; } |
| 66 | +step"s8a8"{LOCKTABLEa8; } |
| 67 | +step"s8a1"{LOCKTABLEa1; } |
| 68 | +step"s8c"{COMMIT; } |
| 69 | + |
| 70 | +permutation"s1a1""s2a2""s3a3""s4a4""s5a5""s6a6""s7a7""s8a8""s1a2""s2a3""s3a4""s4a5""s5a6""s6a7""s7a8""s8a1""s8c""s7c""s6c""s5c""s4c""s3c""s2c""s1c" |