libpq: pipeline mode might desynchronize client and server - Mailing list pgsql-bugs

From Ivan Trofimov
Subject libpq: pipeline mode might desynchronize client and server
Date
Msg-id 1efe6f16-30f1-8dd2-7d5a-a6acc4203cc1@yandex.ru
Whole thread Raw
Responses Re: libpq: pipeline mode might desynchronize client and server  (Michael Paquier <michael@paquier.xyz>)
List pgsql-bugs
Hi!

This is a follow up on 
https://www.postgresql.org/message-id/17948-fcace7557e449957@postgresql.org.

Libpq in pipeline mode considers '< 2TDCEZ' a sufficient response to
'> BDESS', when according to specification one more 'Z' is expected.
This leads to client <-> server desynchronization, when libpq parses the 
very next message server sends (which is Z, as expected).

A bit more context and a MRE: 
https://github.com/itrofimow/libpq_protocol_desync

I'm pretty sure that this branch 
https://github.com/postgres/postgres/blob/3af101ce8be8eeb0e8adc61e293b5d12989f68be/src/interfaces/libpq/fe-exec.c#L2124

should be adjusted to handle the case and do not match error response 
against sync query.



pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: ERROR: value out of range: underflow in numeric log calculation
Next
From: Bruce Momjian
Date:
Subject: Re: [BUGS] \copy produces CSV output that cannot be read by \copy