From: | Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Calling pgstat_report_wait_end() before ereport(ERROR) |
Date: | 2019-04-16 11:03:22 |
Message-ID: | CAD21AoCEJi6AMcurhmvwow4PDdAGvhjoR5djsF1wHiSRkZOKrQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Apr 16, 2019 at 2:45 PM Michael Paquier <michael(at)paquier(dot)xyz> wrote:
>
> On Fri, Apr 12, 2019 at 10:06:41PM +0900, Masahiko Sawada wrote:
> > But I think that's not right, I've checked the code. If the startup
> > process failed in that function it raises a FATAL and recovery fails,
> > and if checkpointer process does then it calls
> > pgstat_report_wait_end() in CheckpointerMain().
>
> Well, the point is that the code raises an ERROR, then a FATAL because
> it gets upgraded by recovery. The take, at least it seems to me, is
> that if any new caller of the function misses to clean up the event
> then the routine gets cleared. So it seems to me that the current
> coding is aimed to be more defensive than anything. I agree that
> there is perhaps little point in doing so. In my experience a backend
> switches very quickly back to ClientRead, cleaning up the previous
> event. Looking around, we have also some code paths in slot.c and
> origin.c which close a transient file, clear the event flag... And
> then PANIC, which makes even less sense.
>
> In short, I tend to think that the attached is an acceptable cleanup.
> Thoughts?
Agreed. There are also some code which raise an ERROR after close a
transient file but I think it's a good idea to not include them for
safety. It looks to me that the patch you proposed cleans places as
much as we can do.
Regards,
--
Masahiko Sawada
NIPPON TELEGRAPH AND TELEPHONE CORPORATION
NTT Open Source Software Center
From | Date | Subject | |
---|---|---|---|
Next Message | David Rowley | 2019-04-16 11:30:51 | Re: Caveats from reloption toast_tuple_target |
Previous Message | Masahiko Sawada | 2019-04-16 10:44:26 | Re: Calling pgstat_report_wait_end() before ereport(ERROR) |