Re: Concurrency bug in amcheck

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Alexander Korotkov <a.korotkov@postgrespro.ru>, Peter Geoghegan <pg@bowt.ie>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-04-22T15:57:00Z
Lists: pgsql-hackers
Hi,

Peter, Just thought you might want to see this one...

On 2020-04-21 15:31:13 +0300, Alexander Korotkov wrote:
> On Tue, Apr 21, 2020 at 12:54 PM Alexander Korotkov
> <a.korotkov@postgrespro.ru> wrote:
> > I found concurrency bug in amcheck running on replica.  When
> > btree_xlog_unlink_page() replays changes to replica, deleted page is
> > left with no items.  But if amcheck steps on such deleted page
> > palloc_btree_page() expects it would have items.
> 
> I forgot to mention that I've reproduced it on master.  Quick check
> shows bug should exist since 11.

- Andres



Commits

  1. Remove btree page items after page unlink

  2. Fix amcheck for page checks concurrent to replay of btree page deletion