pgsql: Ensure we discard unread/unsent data when abandoning a connectio
| От | Tom Lane |
|---|---|
| Тема | pgsql: Ensure we discard unread/unsent data when abandoning a connectio |
| Дата | |
| Msg-id | E1QxNRM-0008O0-7v@gemulon.postgresql.org обсуждение |
| Список | pgsql-committers |
Ensure we discard unread/unsent data when abandoning a connection attempt. There are assorted situations wherein PQconnectPoll() will abandon a connection attempt and try again with different parameters (eg, SSL versus not SSL). However, the code forgot to discard any pending data in libpq's I/O buffers when doing this. In at least one case (server returns E message during SSL negotiation), there is unread input data which bollixes the next connection attempt. I have not checked to see whether this is possible in the other cases where we close the socket and retry, but it seems like a matter of good defensive programming to add explicit buffer-flushing code to all of them. This is one of several issues exposed by Daniel Farina's report of misbehavior after a server-side fork failure. This has been wrong since forever, so back-patch to all supported branches. Branch ------ REL8_3_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/e5d2db5d22c98c9332919899d51f36d174b3990a Modified Files -------------- src/interfaces/libpq/fe-connect.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-)
В списке pgsql-committers по дате отправления: