Re: [HACKERS] Assertion failure when the non-exclusive pg_stop_backup aborted.

Masahiko Sawada <sawada.mshk@gmail.com>

From: Masahiko Sawada <sawada.mshk@gmail.com>
To: Michael Paquier <michael.paquier@gmail.com>
Cc: Fujii Masao <masao.fujii@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2017-11-16T11:17:47Z
Lists: pgsql-hackers

Attachments

On Thu, Nov 16, 2017 at 1:11 PM, Michael Paquier
<michael.paquier@gmail.com> wrote:
> On Thu, Nov 16, 2017 at 10:57 AM, Masahiko Sawada <sawada.mshk@gmail.com> wrote:
>> Agreed. Attached the updated patch, please review it.

Thank you for the comment.

> +   /*
> +    * 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:

Agreed.

> +   Assert(XLogCtl->Insert.nonExclusiveBackups > 0 &&
> +          sessionBackupState == SESSION_BACKUP_NON_EXCLUSIVE);
>
> And your patch would discard both SESSION_BACKUP_EXCLUSIVE and
> SESSION_BACKUP_NONE.

Attached the latest patch. Please review it.

Regards,

--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center

Commits

  1. Fix bug in cancellation of non-exclusive backup to avoid assertion failure.