From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Ashwin Agrawal <aagrawal(at)pivotal(dot)io>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>, Paul Guo <paulguo(at)gmail(dot)com> |
Subject: | Re: Missing error_context_stack = NULL in AutoVacWorkerMain() |
Date: | 2019-10-21 04:56:52 |
Message-ID: | 20191021045652.GA2609@paquier.xyz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Oct 21, 2019 at 12:47:40AM -0400, Tom Lane wrote:
> This seems like a real and possibly serious bug to me. Backend sigsetjmp
> callers *must* clear error_context_stack (or restore it to a previous
> value), because if it isn't NULL it's surely pointing at garbage, ie a
> local variable that's no longer part of the valid stack.
Sure. From my recollection of memories we never set it in autovacuum
code paths (including index entry deletions), so I don't think that we
have an actual live bug here.
> The issue might be argued to be insignificant because the autovacuum
> worker is just going to do proc_exit anyway. But if it encountered
> another error during proc_exit, elog.c might try to invoke error
> callbacks using garbage callback data.
>
> In short, I think we'd better back-patch too.
Okay, no objections to back-patch.
--
Michael
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-10-21 05:01:50 | Re: Missing error_context_stack = NULL in AutoVacWorkerMain() |
Previous Message | Tom Lane | 2019-10-21 04:53:27 | Re: Missing error_context_stack = NULL in AutoVacWorkerMain() |