pgsql: Install an error check into cancel_before_shmem_exit().

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Install an error check into cancel_before_shmem_exit().
Дата
Msg-id E1kFjhK-0004Wn-Tv@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Install an error check into cancel_before_shmem_exit().

Historically, cancel_before_shmem_exit() just silently did nothing
if the specified callback wasn't the top-of-stack.  The folly of
ignoring this case was exposed by the bugs fixed in 303640199 and
bab150045, so let's make it throw elog(ERROR) instead.

There is a decent argument to be made that PG_ENSURE_ERROR_CLEANUP
should use some separate infrastructure, so it wouldn't break if
something inside the guarded code decides to register a new
before_shmem_exit callback.  However, a survey of the surviving
uses of before_shmem_exit() and PG_ENSURE_ERROR_CLEANUP doesn't
show any plausible conflicts of that sort today, so for now we'll
forgo the extra complexity.  (It will almost certainly become
necessary if anyone ever wants to wrap PG_ENSURE_ERROR_CLEANUP
around arbitrary user-defined actions, though.)

No backpatch, since this is developer support not a production issue.

Bharath Rupireddy, per advice from Andres Freund, Robert Haas, and myself

Discussion: https://postgr.es/m/CALj2ACWk7j4F2v2fxxYfrroOF=AdFNPr1WsV+AGtHAFQOqm_pw@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c9ae5cbb8834dd440cdfa7058c03443f98436284

Modified Files
--------------
src/backend/storage/ipc/ipc.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: pgsql: Fix autovacuum cancellation.
Следующее
От: Alvaro Herrera
Дата:
Сообщение: pgsql: Check default partitions constraints while descending