Re: 011_crash_recovery.pl intermittently fails

Kyotaro Horiguchi <horikyota.ntt@gmail.com>

From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: tgl@sss.pgh.pa.us
Cc: thomas.munro@gmail.com, pg@bowt.ie, pgsql-hackers@lists.postgresql.org, craig.ringer@enterprisedb.com, robertmhaas@gmail.com
Date: 2021-03-05T07:51:17Z
Lists: pgsql-hackers
At Thu, 04 Mar 2021 23:40:34 -0500, Tom Lane <tgl@sss.pgh.pa.us> wrote in 
> BTW, I tried simply removing the "allows_streaming" option from
> the test, and it failed ten times out of ten tries for me.
> So Andres is right that that makes it pretty reproducible in
> a stock build.

The difference comes from the difference of shared_buffers. In the
"allows_streaming" case, PostgresNode::init() *reduces* the number
down to '1MB'(128 blocks) which leads to only 8 XLOGbuffers, which
will very soon be wrap-arounded, which leads to XLogWrite.

When allows_streaming=0 case, the default size of shared_buffers is
128MB (16384 blocks).  WAL buffer (512) doesn't get wrap-arounded
during the test and no WAL buffer is written out in that case.

regards.

-- 
Kyotaro Horiguchi
NTT Open Source Software Center



Commits

  1. Remove recovery test 011_crash_recovery.pl

  2. Add a txid_status function.