Moving responsibility for logging "database system is shut down"

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: Moving responsibility for logging "database system is shut down"
Date: 2016-02-10 20:13:23
Message-ID: 11800.1455135203@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

In our recent investigations of slow shutdown on some buildfarm members,
it became clear that "database system is shut down" can get logged many
seconds before the postmaster actually exits; the main cause of delay
is that the stats collector's final data dump can take awhile. This is
pretty confusing, IMO. I think that that message should only come out
once the postmaster has removed its pidfile, which is the action that
makes it look shut-down to "pg_ctl stop".

After some investigation it seems that the best place to do the logging
is right in UnlinkLockFiles(); that's called when and only when we need
a log message, and there doesn't seem to be a better place for it.
I considered putting the logging into proc_exit(), but then we would need
more logic to determine whether the type of process we're exiting is one
for which such a message should be printed. That seems messier.

I also considered moving the "shutting down" message that is currently
printed at the top of ShutdownXLOG(), but could not find any clearly
better place to do that than where it is.

So I propose the attached patch. Any objections? Should this get
back-patched? It's arguably a bug, though surely a minor one, that
the message comes out when it does.

regards, tom lane

Attachment Content-Type Size
move-shutdown-message-later.patch text/x-diff 1.4 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andreas 'ads' Scherbaum 2016-02-10 20:36:46 Re: pl/pgSQL, get diagnostics and big data
Previous Message Pavel Stehule 2016-02-10 19:42:41 Re: proposal: schema PL session variables