Re: datachecksums: handle invalid and dropped databases during enable

From: Daniel Gustafsson <daniel(at)yesql(dot)se>
To: Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com>
Cc: Alexander Lakhin <exclusion(at)gmail(dot)com>, Tomas Vondra <tomas(at)vondra(dot)me>, "Jonathan Gonzalez V(dot)" <jonathan(dot)abdiel(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: datachecksums: handle invalid and dropped databases during enable
Date: 2026-08-18 22:12:07
Message-ID: B8AA1FC9-0F96-4A37-84E8-B425DDBD192A@yesql.se
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On 18 Aug 2026, at 11:11, Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com> wrote:
>
> Thanks for the report and analysis!

Indeed, thanks Alexander! Stellar work as always.

> 0001 fixes the test. The background session now uses
> synchronous_commit = off, so its exit-time commit does not flush at
> all, and the test checkpoints right before the DROP so the few
> remaining exit-time WAL inserts cannot queue behind a large backlog.

Thanks for the patch, I agree with your fix and have tested it extensively
locally and in CI. After staring at it a bit more, I pushed and backpatched
it.

> 0002 makes the launcher retry the database in this situation. The
> worker records in shared memory when it is terminated by SIGTERM, and
> if the database still exists the launcher starts a new worker for it
> instead of aborting.
> A worker failing still aborts the operation as before, and canceling
> the launcher also still works.

I'm not entirely convinced about the UX around user termination of the worker
so need more time pondering on this one.

--
Daniel Gustafsson

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Daniel Gustafsson 2026-08-18 22:13:33 Re: pg_control_checkpoint(): add "data_checksum_version" (Pg19)?
Previous Message Tom Lane 2026-08-18 21:58:03 Re: Residual cleanups for tied objects in PL/Perl