Skip to content

Commit 1c988fe

Browse files
committed
use sync replica in tests
1 parent f00d19b commit 1c988fe

File tree

3 files changed

+31
-7
lines changed

3 files changed

+31
-7
lines changed

reinit.sh

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ reinit_master() {
77

88
echo "max_prepared_transactions = 100" >> ./install/data/postgresql.conf
99
echo "shared_buffers = 512MB" >> ./install/data/postgresql.conf
10-
# echo "fsync = on" >> ./install/data/postgresql.conf
10+
# echo "fsync = off" >> ./install/data/postgresql.conf
1111
echo "log_checkpoints = on" >> ./install/data/postgresql.conf
1212
echo "max_wal_size = 48MB" >> ./install/data/postgresql.conf
1313
echo "min_wal_size = 32MB" >> ./install/data/postgresql.conf
@@ -21,8 +21,6 @@ reinit_master() {
2121
echo 'local replication stas trust' >> ./install/data/pg_hba.conf
2222

2323
./install/bin/pg_ctl -sw -D ./install/data -l ./install/logfile start
24-
./install/bin/createdb stas
25-
./install/bin/psql -c "create table t(id int);"
2624
}
2725

2826
reinit_slave() {
@@ -36,6 +34,15 @@ reinit_slave() {
3634
echo '---- test ----' >> ./install/slave_logfile
3735

3836
./install/bin/pg_ctl -sw -D ./install/data_slave -l ./install/slave_logfile start
37+
38+
39+
echo "synchronous_standby_names = '*'" >> ./install/data/postgresql.conf
40+
./install/bin/pg_ctl -sw -D ./install/data -l ./install/logfile restart
41+
}
42+
43+
postinit(){
44+
./install/bin/createdb stas
45+
./install/bin/psql -c "create table t(id int);"
3946
}
4047

4148
make install > /dev/null
@@ -53,6 +60,7 @@ MSG
5360

5461
pkill -9 postgres
5562
reinit_master >> /dev/null
63+
postinit >> /dev/null
5664
psql <<SQL
5765
begin;
5866
insert into t values (42);
@@ -79,6 +87,7 @@ MSG
7987

8088
pkill -9 postgres
8189
reinit_master >> /dev/null
90+
postinit >> /dev/null
8291
psql <<SQL
8392
checkpoint;
8493
select * from pg_current_xlog_location();
@@ -108,6 +117,7 @@ MSG
108117

109118
pkill -9 postgres
110119
reinit_master >> /dev/null
120+
postinit >> /dev/null
111121
psql <<SQL
112122
begin;
113123
insert into t values (42);
@@ -139,6 +149,7 @@ MSG
139149
pkill -9 postgres
140150
reinit_master >> /dev/null
141151
reinit_slave >> /dev/null
152+
postinit >> /dev/null
142153
psql <<SQL
143154
begin;
144155
insert into t values (42);
@@ -159,6 +170,7 @@ MSG
159170
pkill -9 postgres
160171
reinit_master >> /dev/null
161172
reinit_slave >> /dev/null
173+
postinit >> /dev/null
162174
psql <<SQL
163175
begin;
164176
insert into t values (42);
@@ -182,11 +194,15 @@ MSG
182194

183195
pkill -9 postgres
184196
reinit_master >> /dev/null
197+
echo "master init"
185198
reinit_slave >> /dev/null
199+
echo "slave init"
200+
postinit >> /dev/null
186201
psql <<SQL
187202
begin;
188203
insert into t values (42);
189204
prepare transaction 'x';
205+
--select * from pg_current_xlog_location();
190206
SQL
191207
kill -9 `cat install/data/postmaster.pid | head -n 1`
192208
./install/bin/pg_ctl promote -D ./install/data_slave
@@ -206,6 +222,7 @@ MSG
206222
pkill -9 postgres
207223
reinit_master >> /dev/null
208224
reinit_slave >> /dev/null
225+
postinit >> /dev/null
209226
psql <<SQL
210227
begin;
211228
insert into t values (42);
@@ -232,6 +249,7 @@ MSG
232249
pkill -9 postgres
233250
reinit_master >> /dev/null
234251
reinit_slave >> /dev/null
252+
postinit >> /dev/null
235253
psql <<SQL
236254
begin;
237255
insert into t values (42);
@@ -257,6 +275,7 @@ MSG
257275

258276
pkill -9 postgres
259277
reinit_master >> /dev/null
278+
postinit >> /dev/null
260279
psql <<SQL
261280
begin;
262281
insert into t values (42);

src/backend/access/transam/twophase.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1983,13 +1983,12 @@ PrescanPreparedTransactions(TransactionId **xids_p, int *nxids_p)
19831983
* startup.
19841984
*/
19851985
void
1986-
RecoverPreparedFromFiles(bool overwriteOK)
1986+
RecoverPreparedFromFiles(bool forceOverwriteOK)
19871987
{
19881988
char dir[MAXPGPATH];
19891989
DIR *cldir;
19901990
struct dirent *clde;
1991-
1992-
// NB: look carefully at case overwriteOK=true
1991+
bool overwriteOK = false;
19931992

19941993
fprintf(stderr, "=== RecoverPreparedFromFiles\n");
19951994

@@ -2070,6 +2069,12 @@ RecoverPreparedFromFiles(bool overwriteOK)
20702069
XLogLogicalInfoActive()))
20712070
overwriteOK = true;
20722071

2072+
/*
2073+
* Caller can also force overwriteOK.
2074+
*/
2075+
if (forceOverwriteOK)
2076+
overwriteOK = true;
2077+
20732078
/*
20742079
* Reconstruct subtrans state for the transaction --- needed
20752080
* because pg_subtrans is not preserved over a restart. Note that

src/backend/storage/ipc/procarray.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2061,7 +2061,7 @@ GetOldestActiveTransactionId(void)
20612061
TransactionId oldestRunningXid;
20622062
int index;
20632063

2064-
// Assert(!RecoveryInProgress());
2064+
Assert(!RecoveryInProgress());
20652065

20662066
LWLockAcquire(ProcArrayLock, LW_SHARED);
20672067

0 commit comments

Comments
 (0)