Skip to content

Commit a290fbd

Browse files
committed
trying to reproduce MPQ bug
1 parent 5d41031 commit a290fbd

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
use strict;
2+
use warnings;
3+
use PostgresNode;
4+
use TestLib;
5+
use Test::More tests => 1;
6+
7+
# Setup master node
8+
my $node_master = get_new_node("Candie");
9+
$node_master->init(allows_streaming => 1);
10+
$node_master->append_conf('postgresql.conf', qq(
11+
max_prepared_transactions = 10
12+
));
13+
$node_master->start;
14+
$node_master->backup('master_backup');
15+
$node_master->psql('postgres', "create table t(id int)");
16+
17+
# Setup master node
18+
my $node_slave = get_new_node('Django');
19+
$node_slave->init_from_backup($node_master, 'master_backup', has_streaming => 1);
20+
$node_slave->start;
21+
22+
my $psql_out = '';
23+
my $psql_rc = '';
24+
25+
$node_master->psql('postgres', "
26+
begin;
27+
insert into t values(0);
28+
create table t1(id int);
29+
insert into t1 values(1);
30+
create table t2(id int);
31+
insert into t2 values(2);
32+
savepoint s1;
33+
drop table t1;
34+
select * from t for update;
35+
select * from t2 for share;
36+
prepare transaction 'x';
37+
");
38+
sleep 2;
39+
$node_slave->teardown_node;
40+
$node_master->psql('postgres',"commit prepared 'x'");
41+
$node_slave->start;
42+
$node_slave->psql('postgres',"select count(*) from pg_prepared_xacts", stdout => \$psql_out);
43+
44+
is($psql_out, '0', "Commit prepared on master while slave is down.");
45+
46+

0 commit comments

Comments
 (0)