pgsql: pgbench: Fail cleanly when finding a COPY result state
От | Michael Paquier |
---|---|
Тема | pgsql: pgbench: Fail cleanly when finding a COPY result state |
Дата | |
Msg-id | E1v4XyQ-001CtK-0L@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
pgbench: Fail cleanly when finding a COPY result state Currently, pgbench aborts when a COPY response is received in readCommandResponse(). However, as PQgetResult() returns an empty result when there is no asynchronous result, through getCopyResult(), the logic done at the end of readCommandResponse() for the error path leads to an infinite loop. This commit forcefully exits the COPY state with PQendcopy() before moving to the error handler when fiding a COPY state, avoiding the infinite loop. The COPY protocol is not supported by pgbench anyway, as an error is assumed in this case, so giving up is better than having the tool be stuck forever. pgbench was interruptible in this state. A TAP test is added to check that an error happens if trying to use COPY. Author: Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com> Discussion: https://postgr.es/m/CAO6_XqpHyF2m73ifV5a=5jhXxH2chk=XrgefY+eWWPe2Eft3=A@mail.gmail.com Backpatch-through: 13 Branch ------ REL_17_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/de6de069d9c6b432a5dfd98b0784ed7f60a793ce Modified Files -------------- src/bin/pgbench/pgbench.c | 14 ++++++++++++++ src/bin/pgbench/t/001_pgbench_with_server.pl | 11 +++++++++++ 2 files changed, 25 insertions(+)
В списке pgsql-committers по дате отправления: