mirror of
https://github.com/postgres/postgres.git
synced 2026-04-22 14:47:29 -04:00
Minimal fix for WAIT FOR ... MODE 'standby_flush'
The investigation into the negative test performance impact of 7e8aeb9e48
lead to discovering that there are a few issues with WAIT FOR.
This commit is just a minimal fix to prevent hangs in standby_flush mode, due
to WAIT FOR ... 'standby_flush' seeing a 0 LSN if a newly started walreceiver
does not receive any writes, because the stanby is already caught up.
There are several other issues and this is isn't necessarily the best fix. But
this way we get the hangs out of the way.
Reported-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/zqbppucpmkeqecfy4s5kscnru4tbk6khp3ozqz6ad2zijz354k@w4bdf4z3wqoz
This commit is contained in:
parent
8fb95a8ab6
commit
29e7dbf5e4
2 changed files with 1 additions and 2 deletions
|
|
@ -242,8 +242,6 @@ WalReceiverMain(const void *startup_data, size_t startup_data_len)
|
|||
|
||||
SpinLockRelease(&walrcv->mutex);
|
||||
|
||||
pg_atomic_write_u64(&WalRcv->writtenUpto, 0);
|
||||
|
||||
/* Arrange to clean up at walreceiver exit */
|
||||
on_shmem_exit(WalRcvDie, PointerGetDatum(&startpointTLI));
|
||||
|
||||
|
|
|
|||
|
|
@ -321,6 +321,7 @@ RequestXLogStreaming(TimeLineID tli, XLogRecPtr recptr, const char *conninfo,
|
|||
walrcv->flushedUpto = recptr;
|
||||
walrcv->receivedTLI = tli;
|
||||
walrcv->latestChunkStart = recptr;
|
||||
pg_atomic_write_u64(&walrcv->writtenUpto, recptr);
|
||||
}
|
||||
walrcv->receiveStart = recptr;
|
||||
walrcv->receiveStartTLI = tli;
|
||||
|
|
|
|||
Loading…
Reference in a new issue