repro_helper.diff
text/x-patch
Filename: repro_helper.diff
Type: text/x-patch
Part: 1
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/replication/walreceiver.c | 23 | 0 |
diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c
index 60de3be92c..396510a81d 100644
--- a/src/backend/replication/walreceiver.c
+++ b/src/backend/replication/walreceiver.c
@@ -963,6 +963,29 @@ XLogWalRcvWrite(char *buf, Size nbytes, XLogRecPtr recptr)
buf += byteswritten;
LogstreamResult.Write = recptr;
+
+ {
+ /* fake oneshot SIGTERM just at segment end */
+ struct stat b;
+ char *sigfile1 = "/tmp/hoge1";
+ char *sigfile2 = "/tmp/hoge2";
+
+ if (LogstreamResult.Write % wal_segment_size == 0 &&
+ stat(sigfile1, &b) == 0)
+ {
+ unlink(sigfile1);
+ ShutdownRequestPending = true;
+ ereport(LOG,(errmsg("STOP BY trig1@%lX", LogstreamResult.Write)));
+ }
+
+ if (LogstreamResult.Write % wal_segment_size == 0x500000 &&
+ stat(sigfile2, &b) == 0)
+ {
+ unlink(sigfile2);
+ ShutdownRequestPending = true;
+ ereport(LOG,(errmsg("STOP BY trig2@%lX", LogstreamResult.Write)));
+ }
+ }
}
/* Update shared-memory status */