Re: Assert in heapgettup_pagemode() fails due to underlying buffer change
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: Noah Misch <noah@leadboat.com>, Robert Haas <robertmhaas@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-06-07T06:06:14Z
Lists: pgsql-hackers
Attachments
- 0001-Fix-RBM_ZERO_AND_LOCK.patch (text/x-patch) patch 0001
On Fri, Jun 7, 2024 at 3:06 PM Thomas Munro <thomas.munro@gmail.com> wrote: > On Fri, Jun 7, 2024 at 3:00 PM Alexander Lakhin <exclusion@gmail.com> wrote: > > My bisect run ended with: > > 210622c60e1a9db2e2730140b8106ab57d259d15 is the first bad commit > > > > Author: Thomas Munro <tmunro@postgresql.org> > > Date: Wed Apr 3 00:03:08 2024 +1300 > > > > Provide vectored variant of ReadBuffer(). > > > > Other buildfarm failures with this Assert I could find kind of confirm this: > > https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=calliphoridae&dt=2024-04-03%2003%3A32%3A18 > > (presumably a first failure of this sort) > > https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=tamandua&dt=2024-04-04%2015%3A38%3A16 > > https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=margay&dt=2024-05-07%2004%3A00%3A08 > > Looking... What Noah described[1] is what should be happening already, I think, but 210622c6 unconditionally zeroed the page. Oops. The attached seems to cure his repro for me. Does it also cure your test? I couldn't see that variant myself for some reason, but it seems to make sense as the explanation. I would probably adjust the function name or perhaps consider refactoring slightly, but first let's confirm that this is the same issue and fix. [1] https://www.postgresql.org/message-id/flat/20240512171658.7e.nmisch@google.com
Commits
-
Fix RBM_ZERO_AND_LOCK.
- e656657f2b93 17.0 landed
-
Provide vectored variant of ReadBuffer().
- 210622c60e1a 17.0 cited