Remove extra Logging_collector check before calling SysLogger_Start()
Hackorum builds and tests every patch posted to the lists, not only commitfest submissions. This is Hackorum's own CI rather than the PostgreSQL project's, and it is still under testing - please report anything that looks wrong.
You can run a PostgreSQL built from this patch straight from Docker, with no checkout and no build:
docker run --rm -p 5432:5432 ghcr.io/hackorum-dev/postgres-patch:t45195psql -h localhost -U postgresBuilt from patchset v1 (message #1), July 27, 2026 at 03:51 PM.
Every patchset is also pushed to a branch of our PostgreSQL fork, so you can check out the same tree CI built. Without a PostgreSQL checkout:
git clone --branch t45195_1 https://github.com/hackorum-dev/postgres.gitIn a checkout you already have, add the fork once:
git remote add hackorum https://github.com/hackorum-dev/postgres.gitthen, for this patchset and every later one:
git fetch hackorum t45195_1 && git checkout t45195_1Patchset v1 (message #1) is on t45195_1
Hi,
It seems like there's an extra Logging_collector check before calling
SysLogger_Start(). Note that the SysLogger_Start() has a check to
return 0 if Logging_collector is off. This change is consistent with
the other usage of SysLogger_Start().
/* If we have lost the log collector, try to start a new one */
- if (SysLoggerPID == 0 && Logging_collector)
+ if (SysLoggerPID == 0)
SysLoggerPID = SysLogger_Start();
Attaching a tiny patch to fix. Thoughts?
Regards,
Bharath Rupireddy.
On 3 Dec 2021, at 08:58, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> wrote:
It seems like there's an extra Logging_collector check before calling
SysLogger_Start(). Note that the SysLogger_Start() has a check to
return 0 if Logging_collector is off. This change is consistent with
the other usage of SysLogger_Start()./* If we have lost the log collector, try to start a new one */ - if (SysLoggerPID == 0 && Logging_collector) + if (SysLoggerPID == 0) SysLoggerPID = SysLogger_Start();
I think the code reads clearer with the Logging_collector check left intact,
and avoiding a function call in this codepath doesn't hurt.
--
Daniel Gustafsson https://vmware.com/
On Fri, Dec 3, 2021 at 1:43 PM Daniel Gustafsson <daniel@yesql.se> wrote:
On 3 Dec 2021, at 08:58, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> wrote:
It seems like there's an extra Logging_collector check before calling
SysLogger_Start(). Note that the SysLogger_Start() has a check to
return 0 if Logging_collector is off. This change is consistent with
the other usage of SysLogger_Start()./* If we have lost the log collector, try to start a new one */ - if (SysLoggerPID == 0 && Logging_collector) + if (SysLoggerPID == 0) SysLoggerPID = SysLogger_Start();I think the code reads clearer with the Logging_collector check left intact,
and avoiding a function call in this codepath doesn't hurt.
In that case, can we remove if (!Logging_collector) within
SysLogger_Start() and have the check outside? This will save function
call costs in the other places too. The pgarch_start and
AutoVacuumingActive have checks outside PgArchStartupAllowed and
AutoVacuumingActive.
Regards,
Bharath Rupireddy.
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> writes:
On Fri, Dec 3, 2021 at 1:43 PM Daniel Gustafsson <daniel@yesql.se> wrote:
On 3 Dec 2021, at 08:58, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> wrote:
It seems like there's an extra Logging_collector check before calling
SysLogger_Start().
I think the code reads clearer with the Logging_collector check left intact,
and avoiding a function call in this codepath doesn't hurt.
In that case, can we remove if (!Logging_collector) within
SysLogger_Start() and have the check outside?
I think it's fine as-is; good belt-and-suspenders-too programming.
It's not like the extra check inside SysLogger_Start() is costly.
regards, tom lane