Re: [HACKERS] Backend crash on non-exclusive backup cancel - Mailing list pgsql-hackers

From Anastasia Lubennikova
Subject Re: [HACKERS] Backend crash on non-exclusive backup cancel
Date
Msg-id 20170314152714.22419.22145.pgcf@coridan.postgresql.org
Whole thread Raw
Responses Re: [HACKERS] Backend crash on non-exclusive backup cancel  (Michael Paquier <michael.paquier@gmail.com>)
List pgsql-hackers
As far as I understand, in this thread were discussed two bugs of pg_stop_backup().
Thanks to the clear descriptions above, I easily reproduced both of them.

BUG#1:
Server crashes on assertion on call of pg_stop_backup(false) after interrupted call of pg_stop_backup(false).
TRAP: FailedAssertion("!(XLogCtl->Insert.nonExclusiveBackups > 0)", File: "xlog.c", Line: 10747)

BUG#2:
Failure to start an exclusive backup with the same name, if previous exclusive backup was stopped in another session.

Both problems seem to be fixed with patch "backup-session-locks-fixes.patch".
Speaking of the patch itself, I have a question: shouldn't we also update sessionBackupState
in pg_stop_backup_callback() along with XLogCtl->Insert.exclusiveBackupState?

And couple of minor notes:
1) + * Routines to starting stop, and get status of a base backup
Probably should be: + * Routines to start, stop and get status of a base backup
And also this comment should be moved below the enum.

2) This is used in parallel of the shared memory status 
s/ in parallel of/ in parallel with


The new status of this patch is: Waiting on Author

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Bug: timestamp without time zone column allows timestamptz default
Next
From: Joe Conway
Date:
Subject: Re: [HACKERS] scram and \password