Re: Changing the state of data checksums in a running cluster

From: Tomas Vondra <tomas(at)vondra(dot)me>
To: Alexander Lakhin <exclusion(at)gmail(dot)com>, Daniel Gustafsson <daniel(at)yesql(dot)se>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Bernd Helmle <mailings(at)oopsware(dot)de>, Michael Paquier <michael(at)paquier(dot)xyz>, Michael Banck <mbanck(at)gmx(dot)net>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Changing the state of data checksums in a running cluster
Date: 2026-08-23 17:30:32
Message-ID: 4b2485e8-1329-468e-924c-5ccdef5ea398@vondra.me
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 8/23/26 19:00, Alexander Lakhin wrote:
> ...
>
> # while running 'psql --no-psqlrc --no-align --tuples-only --quiet --
> dbname port=19054 host=/tmp/sMj0ywRk6i dbname='postgres' --file - --
> variable ON_ERROR_STOP=1' with sql 'SELECT pg_enable_data_checksums(0, 100);
> # ' at .../src/test/modules/test_checksums/t/DataChecksums/Utils.pm line
> 139.
> # Looks like your test exited with 29 just after 37.
> t/007_pgbench_standby.pl ... Dubious, test returned 29 (wstat 7424, 0x1d00)
> All 37 subtests passed
> t/008_pitr.pl .............. 2/? # die: error running SQL:
> 'psql:<stdin>:1: ERROR:  failed to start background worker to process
> data checksums'
> # while running 'psql --no-psqlrc --no-align --tuples-only --quiet --
> dbname port=26149 host=/tmp/dLjAB54enA dbname='postgres' --file - --
> variable ON_ERROR_STOP=1' with sql 'SELECT pg_enable_data_checksums(0, 100);
> # ' at .../src/test/modules/test_checksums/t/DataChecksums/Utils.pm line
> 139.
> # Looks like your test exited with 29 just after 2.
> t/008_pitr.pl .............. Dubious, test returned 29 (wstat 7424, 0x1d00)
> All 2 subtests passed
> t/009_fpi.pl ............... ok   
> t/010_backup_straddle.pl ... ok    
> t/011_standby_straddle.pl .. ok    
>
> Test Summary Report
> -------------------
> t/006_pgbench_single.pl  (Wstat: 512 (exited 2) Tests: 47 Failed: 2)
>   Failed tests:  18, 22
>   Non-zero exit status: 2
> t/007_pgbench_standby.pl (Wstat: 7424 (exited 29) Tests: 37 Failed: 0)
>   Non-zero exit status: 29
> t/008_pitr.pl            (Wstat: 7424 (exited 29) Tests: 2 Failed: 0)
>   Non-zero exit status: 29
> Files=11, Tests=224, 379 wallclock secs ( 0.07 usr  0.02 sys + 18.55
> cusr 38.01 csys = 56.65 CPU)
> Result: FAIL
>
> Could you please have a look if this can be fixed?
>

I'm 99% sure this is a configuration issue in the test, not a bug in the
online checksums code. It happens because with

debug_parallel_query = regress

queries start enough parallel workers to exhaust max_worker_processes,
and so we fail to start the checksum worker.

I've modified the TAP tests to add

max_worker_processes = 16
max_parallel_workers = 16

and with that change it passes just fine.

regards

--
Tomas Vondra

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexandre Felipe 2026-08-23 21:14:39 Re: SLOPE - Planner optimizations on monotonic expressions.
Previous Message Alexander Lakhin 2026-08-23 17:00:01 Re: Changing the state of data checksums in a running cluster