Re: HOT chain validation in verify_heapam()

From: Andres Freund <andres(at)anarazel(dot)de>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Aleksander Alekseev <aleksander(at)timescale(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Himanshu Upadhyaya <upadhyaya(dot)himanshu(at)gmail(dot)com>, Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>
Subject: Re: HOT chain validation in verify_heapam()
Date: 2023-03-23 00:38:38
Message-ID: 20230323003838.kz6hmvlr5n3d52yr@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2023-03-22 13:45:52 -0700, Andres Freund wrote:
> On 2023-03-22 09:19:18 -0400, Robert Haas wrote:
> > On Fri, Mar 17, 2023 at 8:31 AM Aleksander Alekseev
> > <aleksander(at)timescale(dot)com> wrote:
> > > The patch needed a rebase due to a4f23f9b. PFA v12.
> >
> > I have committed this after tidying up a bunch of things in the test
> > case file that I found too difficult to understand -- or in some cases
> > just incorrect, like:
>
> As noticed by Andrew
> https://postgr.es/m/bfa5bd2b-c0e6-9d65-62ce-97f4766b1c42%40dunslane.net and
> then reproduced on HEAD by me, there's something not right here.

skink / valgrind reported in a while back and found another issue:

https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=skink&dt=2023-03-22%2021%3A53%3A41

==2490364== VALGRINDERROR-BEGIN
==2490364== Conditional jump or move depends on uninitialised value(s)
==2490364== at 0x11D459F2: check_tuple_visibility (verify_heapam.c:1379)
==2490364== by 0x11D46262: check_tuple (verify_heapam.c:1812)
==2490364== by 0x11D46FDF: verify_heapam (verify_heapam.c:535)
==2490364== by 0x3D5B2C: ExecMakeTableFunctionResult (execSRF.c:235)
==2490364== by 0x3E8225: FunctionNext (nodeFunctionscan.c:95)
==2490364== by 0x3D6685: ExecScanFetch (execScan.c:133)
==2490364== by 0x3D6709: ExecScan (execScan.c:182)
==2490364== by 0x3E813A: ExecFunctionScan (nodeFunctionscan.c:270)
==2490364== by 0x3D31C4: ExecProcNodeFirst (execProcnode.c:464)
==2490364== by 0x3FF7E7: ExecProcNode (executor.h:262)
==2490364== by 0x3FFB15: ExecNestLoop (nodeNestloop.c:160)
==2490364== by 0x3D31C4: ExecProcNodeFirst (execProcnode.c:464)
==2490364== Uninitialised value was created by a stack allocation
==2490364== at 0x11D45325: check_tuple_visibility (verify_heapam.c:994)
==2490364==
==2490364== VALGRINDERROR-END
==2490364== VALGRINDERROR-BEGIN
==2490364== Conditional jump or move depends on uninitialised value(s)
==2490364== at 0x11D45AC6: check_tuple_visibility (verify_heapam.c:1379)
==2490364== by 0x11D46262: check_tuple (verify_heapam.c:1812)
==2490364== by 0x11D46FDF: verify_heapam (verify_heapam.c:535)
==2490364== by 0x3D5B2C: ExecMakeTableFunctionResult (execSRF.c:235)
==2490364== by 0x3E8225: FunctionNext (nodeFunctionscan.c:95)
==2490364== by 0x3D6685: ExecScanFetch (execScan.c:133)
==2490364== by 0x3D6709: ExecScan (execScan.c:182)
==2490364== by 0x3E813A: ExecFunctionScan (nodeFunctionscan.c:270)
==2490364== by 0x3D31C4: ExecProcNodeFirst (execProcnode.c:464)
==2490364== by 0x3FF7E7: ExecProcNode (executor.h:262)
==2490364== by 0x3FFB15: ExecNestLoop (nodeNestloop.c:160)
==2490364== by 0x3D31C4: ExecProcNodeFirst (execProcnode.c:464)
==2490364== Uninitialised value was created by a stack allocation
==2490364== at 0x11D45325: check_tuple_visibility (verify_heapam.c:994)
==2490364==

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message houzj.fnst@fujitsu.com 2023-03-23 01:26:58 RE: Simplify some codes in pgoutput
Previous Message Andres Freund 2023-03-23 00:30:03 Re: POC: Lock updated tuples in tuple_update() and tuple_delete()