pgsql: Fix bug in cancellation of non-exclusive backup to avoidasserti
От | Fujii Masao |
---|---|
Тема | pgsql: Fix bug in cancellation of non-exclusive backup to avoidasserti |
Дата | |
Msg-id | E1eR0Uv-0006UW-QT@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix bug in cancellation of non-exclusive backup to avoid assertion failure. Previously an assertion failure occurred when pg_stop_backup() for non-exclusive backup was aborted while it's waiting for WAL files to be archived. This assertion failure happened in do_pg_abort_backup() which was called when a non-exclusive backup was canceled. do_pg_abort_backup() assumes that there is at least one non-exclusive backup running when it's called. But pg_stop_backup() can be canceled even after it marks the end of non-exclusive backup (e.g., during waiting for WAL archiving). This broke the assumption that do_pg_abort_backup() relies on, and which caused an assertion failure. This commit changes do_pg_abort_backup() so that it does nothing when non-exclusive backup has been already marked as completed. That is, the asssumption is also changed, and do_pg_abort_backup() now can handle even the case where it's called when there is no running backup. Backpatch to 9.6 where SQL-callable non-exclusive backup was added. Author: Masahiko Sawada and Michael Paquier Reviewed-By: Robert Haas and Fujii Masao Discussion: https://www.postgresql.org/message-id/CAD21AoD2L1Fu2c==gnVASMyFAAaq3y-AQ2uEVj-zTCGFFjvmDg@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/56a95ee5118bf6d46e261b8d352f7dafac10587d Modified Files -------------- src/backend/access/transam/xlog.c | 36 ++++++++++++++++++++++++++++++++---- src/backend/replication/basebackup.c | 5 +++-- 2 files changed, 35 insertions(+), 6 deletions(-)
В списке pgsql-committers по дате отправления: