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-001CtI-0I@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_18_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/c00637b5fdbf756d48021db82f1f9a877429e2a7 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 по дате отправления: