Re: Assertion failure when the non-exclusive pg_stop_backup aborted.
Michael Paquier <michael.paquier@gmail.com>
From: Michael Paquier <michael.paquier@gmail.com>
To: Craig Ringer <craig@2ndquadrant.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2017-09-22T02:00:34Z
Lists: pgsql-hackers
On Fri, Sep 22, 2017 at 10:41 AM, Craig Ringer <craig@2ndquadrant.com> wrote: > Another one to watch out for is that elog(...) and ereport(...) invoke > CHECK_FOR_INTERRUPTS. That's given me exciting surprises before when > combined with assertion checking and various exit cleanup hooks. Ahah. Good point. In this case LWLockWaitForVar() is one thing to worry about if LWLock tracing is enabled because it can log things before holding the existing interrupts. This can be avoided easily in the case of this issue by updating sessionBackupState before calling WALInsertLockRelease and while holding the WAL insert lock. Surely this meritates a comment in the patch we want here. -- Michael
Commits
-
Fix bug in cancellation of non-exclusive backup to avoid assertion failure.
- 0668c84e2857 9.6.7 landed
- 133d2fab2f83 10.2 landed
- 56a95ee5118b 11.0 landed