35
35
my $script1 = $node -> basedir . ' /pgbench_script1' ;
36
36
append_to_file($script1 ,
37
37
" BEGIN;\n "
38
+ . " SELECT pg_sleep(10);\n "
38
39
. " \\ set delta1 random(-5000, 5000)\n "
39
40
. " \\ set delta2 random(-5000, 5000)\n "
40
41
. " UPDATE xy SET y = y + :delta1 WHERE x = 1;\n "
41
- . " SELECT pg_sleep(20 );\n "
42
+ . " SELECT pg_sleep(40 );\n "
42
43
. " UPDATE xy SET y = y + :delta2 WHERE x = 2;\n "
43
44
. " END;" );
44
45
45
46
my $script2 = $node -> basedir . ' /pgbench_script2' ;
46
47
append_to_file($script2 ,
47
48
" BEGIN;\n "
49
+ . " SELECT pg_sleep(10);\n "
48
50
. " \\ set delta1 random(-5000, 5000)\n "
49
51
. " \\ set delta2 random(-5000, 5000)\n "
50
52
. " UPDATE xy SET y = y + :delta2 WHERE x = 2;\n "
@@ -180,8 +182,9 @@ sub test_pgbench_deadlock_failures
180
182
print " # Running: " . join (" " , @command1 ) . " \n " ;
181
183
$h1 = IPC::Run::start \@command1 , \$in1 , \$out1 , \$err1 ;
182
184
183
- # Let pgbench run first update command in the transaction:
184
- sleep 10;
185
+ # Let pgbench sleep 10 seconds and run first update command in the
186
+ # transaction:
187
+ sleep 20;
185
188
186
189
# Run second pgbench
187
190
my @command2 = (
@@ -258,7 +261,7 @@ sub test_pgbench_deadlock_failures
258
261
my $pattern =
259
262
" client 0 sending UPDATE xy SET y = y \\ + (-?\\ d+) WHERE x = (\\ d);\n "
260
263
. " client 0 receiving\n "
261
- . " (|client 0 sending SELECT pg_sleep\\ (20 \\ );\n "
264
+ . " (|client 0 sending SELECT pg_sleep\\ (40 \\ );\n "
262
265
. " client 0 receiving\n )"
263
266
. " client 0 sending UPDATE xy SET y = y \\ + (-?\\ d+) WHERE x = (\\ d);\n "
264
267
. " client 0 receiving\n "
@@ -268,6 +271,8 @@ sub test_pgbench_deadlock_failures
268
271
. " client 0 repeats the failed transaction \\ (attempt 2/2\\ )\n "
269
272
. " client 0 sending BEGIN;\n "
270
273
. " client 0 receiving\n "
274
+ . " client 0 sending SELECT pg_sleep\\ (10\\ );\n "
275
+ . " client 0 receiving\n "
271
276
. " client 0 executing \\\\ set delta1\n "
272
277
. " client 0 executing \\\\ set delta2\n "
273
278
. " client 0 sending UPDATE xy SET y = y \\ + \\ g1 WHERE x = \\ g2;\n "
0 commit comments