I wrote: > Seems like this hasn't fixed the problem: skink still fails on > this test occasionally. > # Failed test '000000010000000000000002 differs from > 000000010000000000000002' > # at t/026_overwrite_contrecord.pl line 61.
This is still happening off and on, which makes it look like a timing-sensitive problem. Confirming that, I can make it fail every time by adding a long sleep just ahead of where 026_overwrite_contrecord.pl captures $initfile. On reflection I think the problem is obvious: if autovacuum does anything concurrently with the test's startup portion, it will cause the carefully-established WAL insertion point to move into the next segment. I propose to add "autovacuum = off" to the test's postmaster configuration. Also, I think we want -ok($initfile != $endfile, "$initfile differs from $endfile"); +ok($initfile ne $endfile, "$initfile differs from $endfile"); The existing coding works as long as all characters of these WAL segment names happen to be decimal digits, but ... regards, tom lane