Re: [HACKERS] Assertion failure when the non-exclusive pg_stop_backup aborted.
Michael Paquier <michael.paquier@gmail.com>
From: Michael Paquier <michael.paquier@gmail.com>
To: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: Fujii Masao <masao.fujii@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2017-11-16T04:11:17Z
Lists: pgsql-hackers
On Thu, Nov 16, 2017 at 10:57 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote: > Agreed. Attached the updated patch, please review it. + /* + * Quick exit if session is not keeping around a non-exclusive backup + * already started. + */ + if (sessionBackupState != SESSION_BACKUP_NON_EXCLUSIVE) + return; I think that it would be more solid to use SESSION_BACKUP_NONE for the comparison, and complete the assertion after the quick exit as follows as this code path should never be taken for an exclusive backup: + Assert(XLogCtl->Insert.nonExclusiveBackups > 0 && + sessionBackupState == SESSION_BACKUP_NON_EXCLUSIVE); And your patch would discard both SESSION_BACKUP_EXCLUSIVE and SESSION_BACKUP_NONE. -- 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