Re: Corner-case bug in pg_rewind

Ian Barwick <ian.barwick@2ndquadrant.com>

From: Ian Barwick <ian.barwick@2ndquadrant.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>, Pavel Borisov <pashkin.elfe@gmail.com>, Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
Cc: Ian Lawrence Barwick <barwick@gmail.com>, Pgsql Hackers <pgsql-hackers@postgresql.org>
Date: 2020-12-02T13:26:53Z
Lists: pgsql-hackers
On 02/12/2020 20:13, Heikki Linnakangas wrote:
> On 01/12/2020 16:52, Pavel Borisov wrote:
>>     Status update for a commitfest entry.
>>
>>     The patch is Waiting on Author for some time. As this is a bug fix,
>>     I am
>>     moving it to the next CF.
>>     Ian, are you planning to continue working on it?
>>
>> As a reviewer, I consider the patch useful and good overall. The comments I left were purely cosmetic. It's a pity to me that this bugfix delayed for such a small reason and outdated, therefore. It would be nice to complete this fix on the next CF.
> 
> Yeah, we really should fix this..
> 
> On 16/11/2020 04:49, Ian Lawrence Barwick wrote:
>>> Also, I think Heikki's notion could be fulfilled.
>>
>> I spent a bit of time looking at that suggestion but couldn't actually
>> verify it was an issue which needed fixing.
 >
> Attached are two patches. The first patch is your original patch, unmodified
> (except for a cosmetic rename of the test file). The second patch builds on
> that, demonstrating and fixing the issue I mentioned. It took me a while to
> create a repro for it, it's easily masked by incidental full-page writes or
> because rows created by XIDs that are not marked as committed on the other
> timeline are invisible, but succeeded at last.

Aha, many thanks. I wasn't entirely sure what I was looking for there and
recently haven't had the time or energy to dig any further.


Regards

Ian Barwick

-- 
Ian Barwick                   https://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services



Commits

  1. Fix more race conditions in the newly-added pg_rewind test.

  2. Fix race conditions in newly-added test.

  3. Fix pg_rewind bugs when rewinding a standby server.

  4. Allow pg_rewind to use a standby server as the source system.

  5. Support clean switchover.