| From: | Alexander Lakhin <exclusion(at)gmail(dot)com> |
|---|---|
| To: | Daniel Gustafsson <daniel(at)yesql(dot)se> |
| Cc: | Andres Freund <andres(at)anarazel(dot)de>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Tomas Vondra <tomas(at)vondra(dot)me>, 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-28 17:00:00 |
| Message-ID: | b2f34fd3-8e98-450e-9e8c-ac08238e9116@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hello Daniel,
06.04.2026 03:20, Daniel Gustafsson wrote:
> I've pushed fixes for all of these as well as the intermittent failures that
> were seen on some BF animals, and will stare at the buildfarm for a while now.
> So far 10 or so machines have built these green so it looks decent so far.
Yesterday culicidae produced a new failure of the 005_injection.pl test:
355/405 test_checksums - postgresql:test_checksums/005_injection FAIL 14.66s exit status 1
[11:07:55.420](0.190s) not ok 3 - ensure checksums are set to off on injection_node
[11:07:55.421](0.001s) # Failed test 'ensure checksums are set to off on injection_node'
# at /home/bf/bf-build/culicidae/REL_19_STABLE/pgsql/src/test/modules/test_checksums/t/DataChecksums/Utils.pm line 69.
[11:07:55.422](0.001s) # got: 'inprogress-off'
# expected: 'off'
I've managed to reproduce it with:
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 7f5d3b1417a..e7ec1b53f74 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -4939,2 +4939,3 @@ SetDataChecksumsOff(void)
WaitForProcSignalBarrier(barrier);
+pg_usleep(1000000);
diff --git a/src/backend/postmaster/datachecksum_state.c b/src/backend/postmaster/datachecksum_state.c
index 443cb799915..43dd91a1480 100644
--- a/src/backend/postmaster/datachecksum_state.c
+++ b/src/backend/postmaster/datachecksum_state.c
@@ -1248,2 +1248,3 @@ DataChecksumsWorkerLauncherMain(Datum arg)
BackgroundWorkerUnblockSignals();
+pg_usleep(rand() % 100000);
for i in {1..20}; do echo "ITERATION $i"; PROVE_TESTS="t/005*" make -s check -C src/test/modules/test_checksums/ ||
break; done
ITERATION 4
# +++ tap check in src/test/modules/test_checksums +++
t/005_injection.pl .. 1/?
# Failed test 'ensure checksums are set to off on injection_node'
# at .../src/test/modules/test_checksums/t/DataChecksums/Utils.pm line 69.
# got: 'inprogress-off'
# expected: 'off'
t/005_injection.pl .. 15/? # Looks like you failed 1 test of 17.
The first commit the test fails this way is 8fb8ded88.
I've also triggered a bit different failure:
t/005_injection.pl .. 1/?
# Failed test 'ensure checksums are set to off on injection_node'
# at .../src/test/modules/test_checksums/t/DataChecksums/Utils.pm line 69.
# got: 'inprogress-on'
# expected: 'off'
t/005_injection.pl .. 15/? # Looks like you failed 1 test of 17.
with:
--- a/src/backend/postmaster/datachecksum_state.c
+++ b/src/backend/postmaster/datachecksum_state.c
@@ -1248,2 +1248,3 @@ DataChecksumsWorkerLauncherMain(Datum arg)
BackgroundWorkerUnblockSignals();
+pg_usleep(rand() % 100000);
@@ -1308,2 +1309,3 @@ again:
SetDataChecksumsOnInProgress();
+pg_usleep(1000000);
It's reproduced even at 07009121c.
Could you please have a look at the test when convenient?
[1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=culicidae&dt=2026-08-27%2009%3A03%3A38
Best regards,
Alexander
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Diego | 2026-08-28 17:48:44 | Re: [Proposal] add portaddr like hostaddr |
| Previous Message | Alberto Piai | 2026-08-28 16:07:17 | Re: Adding a stored generated column without long-lived locks |