Hi,

I investigated the 026_overwrite_contrecord.pl test failure reported by
buildfarm member skink [1], since it occurred just after commit
5d13f753054 that I pushed. The failure seems unrelated to that commit,
though.

The test failed while starting the standby:

    31/324 recovery - postgresql:recovery/026_overwrite_contrecord
    ERROR 324.69s (exit status 255 or 0xff)

The primary took long enough to generate WAL that a time-based checkpoint
occurred before the test stopped it:

    LOG:  checkpoint starting: time
    LOG:  checkpoint complete: ... lsn=0/2093DC8, redo lsn=0/1F8F6A0

The test then removed the tail WAL segment as part of its test scenario.
Because the checkpoint record was in that segment, the standby initialized
from the resulting backup could not find the checkpoint record and failed
with a PANIC:

    LOG:  invalid checkpoint record
    PANIC:  could not locate a valid checkpoint record at 0/2093DC8

So, it seems that the unrelated checkpoint activity caused the test
failure.

The attached patch fixes this by setting checkpoint_timeout high enough
to prevent unrelated checkpoints during this test. This follows the same
approach used by other recovery tests, such as 043_no_contrecord_switch.pl.

Thoughts?

Regards,

[1] 
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=skink&dt=2026-09-02%2020%3A46%3A37

-- 
Fujii Masao

Attachment: v1-0001-Stabilize-026_overwrite_contrecord-test.patch
Description: Binary data

Reply via email to