aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2019-10-23 10:25:06 +0900
committerMichael Paquier <michael@paquier.xyz>2019-10-23 10:25:06 +0900
commite3db3f829f605edc0675e5d308de97f444b53d4b (patch)
tree5cbce41737c5626ac4f631e14149ed65c5c4d667 /src
parentad4b7aeb84434c958e2df76fa69b68493a889e4a (diff)
downloadpostgresql-e3db3f829f605edc0675e5d308de97f444b53d4b.tar.gz
postgresql-e3db3f829f605edc0675e5d308de97f444b53d4b.zip
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
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/autovacuum.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index 073f313337d..c1dd8168caf 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -1558,6 +1558,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();