On Windows, close the client socket explicitly during backend shutdown.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 2 Dec 2021 22:14:43 +0000 (17:14 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 2 Dec 2021 22:15:10 +0000 (17:15 -0500)
commita87c8c3edd7f93ec39abd2c54b46014caadd290f
treefe549f3141b4163d9e27a012efdd0857bdcbf2ea
parent0e603b75c43417673b2b2a5ebdb5326bb9fc6a5b
On Windows, close the client socket explicitly during backend shutdown.

It turns out that this is necessary to keep Winsock from dropping any
not-yet-sent data, such as an error message explaining the reason for
process termination.  It's pretty weird that the implicit close done
by the kernel acts differently from an explicit close, but it's hard
to argue with experimental results.

Independently submitted by Alexander Lakhin and Lars Kanis (comments
by me, though).  Back-patch to all supported branches.

Discussion: https://postgr.es/m/90b34057-4176-7bb0-0dbb-9822a5f6425b@greiz-reinsdorf.de
Discussion: https://postgr.es/m/16678-253e48d34dc0c376@postgresql.org
src/backend/libpq/pqcomm.c