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 "