[HACKERS] Assertion failure when the non-exclusive pg_stop_backup aborted.
От | Masahiko Sawada |
---|---|
Тема | [HACKERS] Assertion failure when the non-exclusive pg_stop_backup aborted. |
Дата | |
Msg-id | CAD21AoD2L1Fu2c==gnVASMyFAAaq3y-AQ2uEVj-zTCGFFjvmDg@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: [HACKERS] Assertion failure when the non-exclusive pg_stop_backup aborted.
|
Список | pgsql-hackers |
Hi, I got an assert failure when executing pg_terminate_backend to the process that waiting for WAL to be archived in non-exclusive backup mode. TRAP: FailedAssertion("!(XLogCtl->Insert.nonExclusiveBackups > 0)", File: "xlog.c", Line: 11123) The one reproducing procedure is, 1. Start postgres with enabling the WAL archive 2. Execute pg_start_backup() 3. Revoke the access privileges of archive directory. (e.g., chown root:root /path/to/archive) 4. Execute pg_stop_backup() and hangs 5. Execute pg_terminate_backend() to the process that is waiting for WAL to be archived. Got the assertion failure. Perhaps we can reproduce it using pg_basebackup as well. I think the cause of this is that do_pg_abort_backup can be called even after we decremented XLogCtl->Insert.nonExclusiveBackups in do_pg_stop_backup(). That is, do_pg_abort_backup can be called with XLogCtl->Insert.nonExclusiveBackups = 0 when the transaction aborts after processed the nonExclusiveBackups (e.g, during waiting for WAL to be archived) The bug can happen in PostgreSQL 9.1 or higher that non-exclusive backup has been introduced, so we should back-patch to the all supported versions. I changed do_pg_abort_backup() so that it decrements nonExclusiveBackups only if > 0. Feedback is very welcome. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: