external_pid_file not removed on postmaster exit

Started by Peter Eisentrautover 13 years ago5 messageshackers
Jump to latest
#1Peter Eisentraut
peter_e@gmx.net

It seems strange that the external_pid_file is never removed. There is
even a C comment about it:

/* Should we remove the pid file on postmaster exit? */

I think it should be removed with proc_exit hook just like the main
postmaster.pid file.

Does anyone remember why this was not done originally or have any
concerns?

#2Amit Kapila
amit.kapila16@gmail.com
In reply to: Peter Eisentraut (#1)
Re: external_pid_file not removed on postmaster exit

From: pgsql-hackers-owner@postgresql.org [pgsql-hackers-owner@postgresql.org] on behalf of Peter Eisentraut [peter_e@gmx.net]
Sent: Friday, July 27, 2012 10:39 AM

It seems strange that the external_pid_file is never removed. There is
even a C comment about it:

/* Should we remove the pid file on postmaster exit? */

I think it should be removed with proc_exit hook just like the main
postmaster.pid file.

external_pid_file is created first time when it is enabled in postgresql.conf
I think it should be removed once the parameter external_pid_file is unset;

Making handling of both postmaster.pid and external_pid_file same in terms of creation and removal may not be best choice
as both have different purpose.

With Regards,
Amit Kapila.

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Amit Kapila (#2)
Re: external_pid_file not removed on postmaster exit

Amit kapila <amit.kapila@huawei.com> writes:

I think it should be removed with proc_exit hook just like the main
postmaster.pid file.

external_pid_file is created first time when it is enabled in postgresql.conf
I think it should be removed once the parameter external_pid_file is unset;

Unset? If that parameter is not PGC_POSTMASTER, it certainly ought to
be. In any case, that has little to do with what Peter is complaining
about ...

regards, tom lane

#4Amit Kapila
amit.kapila16@gmail.com
In reply to: Tom Lane (#3)
Re: external_pid_file not removed on postmaster exit

From: Tom Lane [tgl@sss.pgh.pa.us]
Sent: Saturday, July 28, 2012 9:46 PM

Amit kapila <amit.kapila@huawei.com> writes:

I think it should be removed with proc_exit hook just like the main
postmaster.pid file.

external_pid_file is created first time when it is enabled in postgresql.conf
I think it should be removed once the parameter external_pid_file is unset;

Unset?

By Unset, I mean to say when the configuration parameter 'external_pid_file' is disabled (#external_pid_file).
But if the path/filename is changed to different name across restart of server, it will not be able to delete the previous file.
So it will not workout the way I was trying to think.

However if it is deleted at proc_exit as suggested by Peter, there will be no problem.

The reason why I have thought the file not to get deleted at every proc_exit, is
a. Initially I thought it might be un-necessary to delete and re-create the file at server shutdown and start.
b. I was not sure if this file has usage only till server is running.

With Regards,
Amit Kapila.

#5Peter Eisentraut
peter_e@gmx.net
In reply to: Peter Eisentraut (#1)
Re: external_pid_file not removed on postmaster exit

On Fri, 2012-07-27 at 08:09 +0300, Peter Eisentraut wrote:

It seems strange that the external_pid_file is never removed. There is
even a C comment about it:

/* Should we remove the pid file on postmaster exit? */

I think it should be removed with proc_exit hook just like the main
postmaster.pid file.

Does anyone remember why this was not done originally or have any
concerns?

Since that was not the case, I propose the attached patch to unlink the
external pid file.

Attachments:

pg-unlink-external-pid-file.patchtext/x-patch; charset=UTF-8; name=pg-unlink-external-pid-file.patchDownload+14-1