Re: Patch to implement pg_current_logfile() function

From: Haribabu Kommi <kommi(dot)haribabu(at)gmail(dot)com>
To: "Karl O(dot) Pinc" <kop(at)meme(dot)com>
Cc: Gilles Darold <gilles(dot)darold(at)dalibo(dot)com>, Christoph Berg <myon(at)debian(dot)org>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Shulgin, Oleksandr" <oleksandr(dot)shulgin(at)zalando(dot)de>, Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Patch to implement pg_current_logfile() function
Date: 2016-12-02 11:55:50
Message-ID: CAJrrPGeLar-mXeHj3K3agW6CHLeh8up4zVgrZ-mZxJnUwdY34g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Dec 2, 2016 at 12:08 PM, Karl O. Pinc <kop(at)meme(dot)com> wrote:

> On Sun, 27 Nov 2016 21:54:46 +0100
> Gilles Darold <gilles(dot)darold(at)dalibo(dot)com> wrote:
>
> > I've attached the v15 of the patch
>
> > I've not applied patch patch_pg_current_logfile-v14.diff.backoff to
> > prevent constant call of logfile_writename() on a busy system (errno =
> > ENFILE | EMFILE).
>
> I don't think it should be applied and included in the basic
> functionality patch in any case. I think it needs to be submitted as a
> separate patch along with the basic functionality patch. Backing off
> the retry of the current_logfiles write could be overly fancy and
> simply not needed.
>
> > I think this can be done quite simply by testing if
> > log rotate is still enabled. This is possible because function
> > logfile_rotate() is already testing if errno = ENFILE | EMFILE and in
> > this case rotation_disabled is set to true. So the following test
> > should do the work:
> >
> > if (log_metainfo_stale && !rotation_disabled)
> > logfile_writename();
> >
> > This is included in v15 patch.
>
> I don't see this helping much, if at all.
>
> First, it's not clear just when rotation_disabled can be false
> when log_metainfo_stale is true. The typical execution
> path is for logfile_writename() to be called after rotate_logfile()
> has already set rotataion_disabled to true. logfile_writename()
> is the only place setting log_metainfo_stale to true and
> rotate_logfile() the only place settig rotation_disabled to false.
>
> While it's possible
> that log_metainfo_stale might be set to true when logfile_writename()
> is called from within open_csvlogfile(), this does not help with the
> stderr case. IMO better to just test for log_metaifo_stale at the
> code snippet above.
>
> Second, the whole point of retrying the logfile_writename() call is
> to be sure that the current_logfiles file is updated before the logs
> rotate. Waiting until logfile rotation is enabled defeats the purpose.

Moved to next CF with "needs review" status.

Regards,
Hari Babu
Fujitsu Australia

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Haribabu Kommi 2016-12-02 11:59:18 Re: DROP FUNCTION of multiple functions
Previous Message Vladimir Rusinov 2016-12-02 11:28:25 Re: s/xlog/wal/ in tools and function names?