From: | Aleksander Alekseev <aleksander(at)timescale(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Cc: | Himanshu Upadhyaya <upadhyaya(dot)himanshu(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com> |
Subject: | Re: HOT chain validation in verify_heapam() |
Date: | 2022-09-19 14:57:36 |
Message-ID: | CAJ7c6TNd8xPKGF-kja40PVGDrfg1WEVomi_mctxNFGWx=vFz6g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi Himanshu,
> Done, updated in the v3 patch.
Thanks for the updated patch.
Here is v4 with fixed compiler warnings and some minor tweaks from me.
I didn't put too much thought into the algorithm but I already see
something strange. At verify_heapam.c:553 you declared curr_xmax and
next_xmin. However the variables are not used/initialized until you
do:
```
if (lp_valid[nextoffnum] && lp_valid[ctx.offnum] &&
TransactionIdIsValid(curr_xmax) &&
TransactionIdEquals(curr_xmax, next_xmin)) {
/* ... */
```
In v4 I elected to initialize both curr_xmax and next_xmin with
InvalidTransactionId for safety and in order to silence the compiler
but still there is no way this condition can succeed.
Please make sure there is no logic missing.
--
Best regards,
Aleksander Alekseev
Attachment | Content-Type | Size |
---|---|---|
v4-0001-Implement-HOT-chain-validation-in-verify_heapam.patch | application/octet-stream | 10.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2022-09-19 15:14:05 | Re: Free list same_input_transnos in preprocess_aggref |
Previous Message | David Steele | 2022-09-19 14:56:35 | Re: remove more archiving overhead |