Re: Race condition in recovery?

Robert Haas <robertmhaas@gmail.com>

From: Robert Haas <robertmhaas@gmail.com>
To: Dilip Kumar <dilipbalaut@gmail.com>
Cc: Kyotaro Horiguchi <horikyota.ntt@gmail.com>, hlinnaka <hlinnaka@iki.fi>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-06-08T16:26:02Z
Lists: pgsql-hackers
On Tue, Jun 8, 2021 at 4:47 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> I have changed for as per 9.6 but I am seeing some crash (both
> with/without fix), I could not figure out the reason, it did not
> generate any core dump, although I changed pg_ctl in PostgresNode.pm
> to use "-c" so that it can generate core but it did not generate any
> core file.

I think the problem is here:

Can't locate object method "lsn" via package "PostgresNode" at
t/025_stuck_on_old_timeline.pl line 84.

When that happens, it bails out, and cleans everything up, doing an
immediate shutdown of all the nodes. The 'lsn' method was added by
commit fb093e4cb36fe40a1c3f87618fb8362845dae0f0, so it only appears in
v10 and later. I think maybe we can think of back-porting that to 9.6.

-- 
Robert Haas
EDB: http://www.enterprisedb.com



Commits

  1. Further refinement of stuck_on_old_timeline recovery test

  2. Adjust new test case to set wal_keep_segments.

  3. Adjust new test case to set wal_keep_size.

  4. Fix corner case failure of new standby to follow new primary.

  5. Back-port a few PostgresNode.pm methods.

  6. Allow PostgresNode.pm's backup method to accept backup_options.

  7. Add end-to-end testing of pg_basebackup's tar-format output.

  8. Allow PostgresNode.pm tests to wait for catchup

  9. Delay reading timeline history file until it's fetched from master.