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-001CtM-0P@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_16_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/640590bb423823d60346f14558f93a8b3bafe1dd Modified Files -------------- src/bin/pgbench/pgbench.c | 14 ++++++++++++++ src/bin/pgbench/t/001_pgbench_with_server.pl | 10 ++++++++++ 2 files changed, 24 insertions(+)
В списке pgsql-committers по дате отправления: