Re: pgsql: Refactor how some aux processes advertise their ProcNumber

From: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
To: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, Thom Brown <thom(at)linux(dot)com>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: Refactor how some aux processes advertise their ProcNumber
Date: 2026-07-09 12:17:53
Message-ID: a0edd713-9786-445a-8fd6-0fb30d7038f1@iki.fi
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On 09/07/2026 03:57, Fujii Masao wrote:
> On Thu, Jul 9, 2026 at 6:57 AM Thom Brown <thom(at)linux(dot)com> wrote:
>> @@ -724,6 +725,14 @@ InitAuxiliaryProcess(void)
>> */
>> PGSemaphoreReset(MyProc->sem);
>>
>> + /* Some aux processes are also advertised in ProcGlobal */
>> + if (MyBackendType == B_AUTOVAC_LAUNCHER)
>> + pg_atomic_write_u32(&ProcGlobal->avLauncherProc, MyProcNumber);
>>
>> I'm looking for the places this gets called from. I can only see
>> auxprocess.c which the launcher doesn't go through. The same question
>> for similar code in AuxiliaryProcKill().
>
> You're right. The autovacuum launcher does not go through
> AuxiliaryProcessMainCommon(), so it never calls
> InitAuxiliaryProcess(). Instead, it initializes its PGPROC with
> InitProcess().
>
> As a result, the avLauncherProc assignment added to
> InitAuxiliaryProcess() is never executed for the launcher, and the
> corresponding cleanup in AuxiliaryProcKill() is never reached either.

Huh, you're right. That raises some questions:

Why is the autovacuum launcher not an aux process? I guess it's because
it needs to acquire a heavy-weight lock in order to read the list of
databases.

How come none of the tests failed? I guess the path to wake up the
launcher isn't critical for correctness, it just makes autovacuum slower
to react.

> It seems we should move the avLauncherProc set/clear operations to
> InitProcess()/ProcKill() path, as in the attached patch.
Thanks! Committed that, and also Nathan's volatile removal.

- Heikki

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Fujii Masao 2026-07-09 12:34:50 Re: pgsql: Refactor how some aux processes advertise their ProcNumber
Previous Message Heikki Linnakangas 2026-07-09 12:17:46 pgsql: Fix advertising autovacuum launcher's ProcNumber