From 02f7f246b57e6047480816208150abaa216632fd Mon Sep 17 00:00:00 2001 From: Michael Paquier <michael@paquier.xyz> Date: Wed, 23 Oct 2019 10:26:28 +0900 Subject: [PATCH] Clean up properly error_context_stack in autovacuum worker on exception Any callback set would have no meaning in the context of an exception. As an autovacuum worker exits quickly in this context, this could be only an issue within EmitErrorReport(), where the elog hook is for example called. That's unlikely to going to be a problem, but let's be clean and consistent with other code paths handling exceptions. This is present since 2909419, which introduced autovacuum. Author: Ashwin Agrawal Reviewed-by: Tom Lane, Michael Paquier Discussion: https://postgr.es/m/CALfoeisM+_+dgmAdAOHAu0k-ZpEHHqSSG=GRf3pKJGm8OqWX0w@mail.gmail.com Backpatch-through: 9.4 --- src/backend/postmaster/autovacuum.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index 62a06add568..8eeef24662b 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -1585,6 +1585,9 @@ AutoVacWorkerMain(int argc, char *argv[]) */ if (sigsetjmp(local_sigjmp_buf, 1) != 0) { + /* since not using PG_TRY, must reset error stack by hand */ + error_context_stack = NULL; + /* Prevents interrupts while cleaning up */ HOLD_INTERRUPTS(); -- GitLab