On Mon, Feb 27, 2023 at 2:21 PM Hayato Kuroda (Fujitsu) <kuroda.hay...@fujitsu.com> wrote: >
Few comments: 1. + /* + * If we've requested to shut down, exit the process. + * + * Note that WalSndDone() cannot be used here because the delaying + * changes will be sent in the function. + */ + if (got_STOPPING) + { + QueryCompletion qc; + + /* Inform the standby that XLOG streaming is done */ + SetQueryCompletion(&qc, CMDTAG_COPY, 0); + EndCommand(&qc, DestRemote, false); + pq_flush(); Do we really need to do anything except for breaking the loop and let the exit handling happen in the main loop when 'got_STOPPING' is set? AFAICS, this is what we are doing in some other palces (See WalSndWaitForWal). Won't that work? It seems that will help us sending all the pending WAL. 2. + /* Try to flush pending output to the client */ + if (pq_flush_if_writable() != 0) + WalSndShutdown(); Is there a reason to try flushing here? Apart from the above, I have made a few changes in the comments in the attached diff patch. If you agree with those then please include them in the next version. -- With Regards, Amit Kapila.
changes_amit_1.patch
Description: Binary data