From: | Fujii Masao <fujii(at)postgresql(dot)org> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Fix bug in cancellation of non-exclusive backup to avoid asserti |
Date: | 2017-12-18 18:50:45 |
Message-ID: | E1eR0Uv-0006UW-QT@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Fujii Masao | 2017-12-18 18:51:05 | pgsql: Fix bug in cancellation of non-exclusive backup to avoid asserti |
Previous Message | Robert Haas | 2017-12-18 17:34:07 | pgsql: Fix crashes on plans with multiple Gather (Merge) nodes. |