On Fri, Apr 24, 2026 at 11:05 AM Chao Li <li.evan.chao@gmail.com> wrote:
> ProcessPendingWrites() calls ProcessRepliesIfAny() in the first place, so if it is possible that, a new COPY message
isappended after the already-queued CommandComplete? Which seems to violate the protocol, but I am not sure if that
wouldlead to any trouble.
>
> So, maybe we need a new helper, say ProcessPendingWritesForShutdown(), that loops while pq_is_send_pending(), call
WalSndCheckShutdownTimeout()and only wait for WL_SOCKET_WRITEABLE, then pq_flush_if_writable(), on flush failure, maybe
WalSndShutdown().
Thanks for the review! You're right.
I added such loop directly in WalSndDone() instead of introducing a new helper
function, since only WalSndDone() needs it and the extra loop does not make
WalSndDone() significantly more complicated.
I've attached an updated patch.
Regards,
--
Fujii Masao