[pgpool-general: 9386] Re: PostgreSQL: 25001: DISCARD ALL cannot be executed within a pipeline
Tatsuo Ishii
ishii at postgresql.org
Wed Mar 5 18:03:32 JST 2025
> With Pgpool-II 4.5.2, we had a lot of reports from users that reports were failing with "PostgreSQL: 25001: DISCARD ALL cannot be executed within a pipeline" .
> We upgraded to 4.5.4 with the hope that it would fix the issue. There was no obvious release note that was indicating that it would fix the issue.
> Luckily version 4.5.4 is no longer throwing this error.
>
> My question here is, what specific bug was fixed in 4.5.3 or 4.5.4 that could have fixed this issue.
> Any help would be greatly appreciated.
It's not fixed because it is not a bug of Pgpool-II IMO. Actually it's
caused by client's (or driver's) bug. In this case the client
initiates an extended query protocol. In the protocol, the client
should send "Sync" message at the end of command (thus before exiting
the session) but when the error appears the client did not send Sync,
which is not a good behavior from the protocol's point of view:
https://www.postgresql.org/docs/17/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY
"At completion of each series of extended-query messages, the frontend
should issue a Sync message."
I suggest to fix the client (or driver).
Best reagards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp
More information about the pgpool-general
mailing list