Re: Wake up autovacuum launcher from postmaster when a worker exits

Masahiko Sawada <sawada.mshk@gmail.com>

From: Masahiko Sawada <sawada.mshk@gmail.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2026-01-08T23:01:54Z
Lists: pgsql-hackers
On Thu, Jan 8, 2026 at 11:57 AM Heikki Linnakangas <hlinnaka@iki.fi> wrote:
>
> When an autovacuum worker exits, ProcKill() sends SIGUSR2 to the
> launcher. I propose moving that responsibility to the postmaster, because:
>
> * It's simpler IMHO
>
> * The postmaster is already responsible for sending the signal if fork()
> fails
>
> * It makes it consistent with background workers. When a background
> worker exits, the postmaster sends the signal to the launching process
> (if requested).
>
> * Postmaster doesn't need to worry about sending the signal to the wrong
> process if the launcher's PID is reused, because it always has
> up-to-date PID information, because the launcher is postmaster's child
> process. That risk was negligible to begin with, but this eliminates
> completely, so we don't need the comment excusing it it anymore.

It sounds reasonable to me too. +1.

Regards,

-- 
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com



Commits

  1. Wake up autovacuum launcher from postmaster when a worker exits

  2. Add a multi-worker capability to autovacuum. This allows multiple worker