From: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
---|---|
To: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
Cc: | Michael Paquier <michael(at)paquier(dot)xyz>, Andres Freund <andres(at)anarazel(dot)de>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Excessive PostmasterIsAlive calls slow down WAL redo |
Date: | 2018-07-11 01:16:31 |
Message-ID: | CAEepm=37TO6SH7YP1pAwtpYzJVowZSjrZTTzNXhFFkyL-4+v4Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Jul 10, 2018 at 11:39 PM, Heikki Linnakangas <hlinnaka(at)iki(dot)fi> wrote:
> The 'postmaster_possibly_dead' flag is not reset anywhere. So if a process
> receives a spurious death signal, even though postmaster is still alive,
> PostmasterIsAlive() will continue to use the slow path.
+1
> postmaster_possibly_dead needs to be marked as 'volatile', no?
+1
> The autoconf check for PR_SET_PDEATHSIG seems slightly misplaced. And I
> think we can simplify it with AC_CHECK_HEADER(). I'd also like to avoid
> adding code to c.h for this, that seems too global.
+1, much nicer, thanks.
> After some kibitzing, I ended up with the attached. It fixes the
> postmaster_possible_dead issues mentioned above, and moves around the
> autoconf and #ifdef logic a bit to make it a bit nicer, at least in my
> opinion.
Thanks, that looks good to me. I added your name as co-author and
pushed to master.
I also made a couple of minor cosmetic changes in
PostmasterDeathSignalInit() to make the follow-up patch prettier (#if
defined() instead of #ifdef, and a signum variable because I later
need its address).
> I don't have a FreeBSD machine at hand, so I didn't try fixing that
> patch.
I updated the FreeBSD version to use the header test approach you
showed, and pushed that too. FWIW the build farm has some FreeBSD
animals with and without PROC_PDEATHSIG_CTL.
I suppose it's possibly that we might want to reconsider the choice of
signal in the future (SIGINFO or SIGPWR).
(Random archeological note: TIL that Linux stole <sys/prctl.h> from
Irix (RIP), but it had PR_TERMCHILD instead of PR_SET_PRDEATHSIG.)
--
Thomas Munro
http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Yang Jie | 2018-07-11 01:44:35 | 回复: user-friendliness improvement of pageinspect |
Previous Message | Tsunakawa, Takayuki | 2018-07-11 01:03:44 | RE: How can we submit code patches that implement our (pending) patents? |