From: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
---|---|
To: | Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> |
Cc: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Andres Freund <andres(at)anarazel(dot)de>, Marco Pfatschbacher <Marco_Pfatschbacher(at)genua(dot)de>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [HACKERS] PATCH: Keep one postmaster monitoring pipe per process |
Date: | 2018-07-19 04:58:30 |
Message-ID: | CAEepm=1R__sW-CTByAi+cFUXX8tJu8MTNdeQGZ4L-x5gZ4mxNA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Jul 18, 2018 at 8:30 PM, Kyotaro HORIGUCHI
<horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> wrote:
> At Wed, 18 Jul 2018 14:02:47 +1200, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> wrote in <CAEepm=3t57KBxb90CTqnDZiSTnTq3jwxZUc0zaFDiaOkGQqNxA(at)mail(dot)gmail(dot)com>
>> Here are some of the places I had to add WL_EXIT_ON_PM_DEATH:
>> gather_readnext(), shm_mq_send_bytes(), shm_mq_receive_bytes(),
>> shm_mq_wait_internal(), ProcSleep(), ProcWaitForSignal(), pg_sleep(),
>> pgfdw_get_result().
>>
>> Was it intentional that any of those places don't currently exit on
>> postmaster vaporisation?
>
> I think that backends are supposed to complete running query even
> if postmaster dies meanwhile and currently that seems
> true. pgfdw_get_result seems to be following the policy. Perhaps
> it's the same for all of the functions listed above.
Hmm. Why wait any longer? The cluster is broken. Is there some
correctness reason to defer shutdown in any of these places?
While looking for earlier discussion that might explain why some
places ignored it, I came across this email from Andres, saying the
same thing.
https://www.postgresql.org/message-id/20160321093534.inkduxvpirs5n44j%40alap3.anarazel.de
He mentioned that syslogger.c is a special case. In my patch I added
WL_EXIT_ON_PM_DEATH to SysLoggerMain()'s WaitLatch*() calls, because I
have to or the new assertion fails. Hmm, yeah, that's not great
because it might discard the last words of other backends. So here is
a new version that treats syslogger.c specially and may have other
performance benefits.
--
Thomas Munro
http://www.enterprisedb.com
Attachment | Content-Type | Size |
---|---|---|
0001-Add-WL_EXIT_ON_PM_DEATH-pseudo-event-v2.patch | application/octet-stream | 37.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Erik Rijkers | 2018-07-19 05:00:06 | Re: Possible bug in logical replication. |
Previous Message | Michael Paquier | 2018-07-19 04:42:05 | Re: Possible bug in logical replication. |