| From: | John Naylor <johncnaylorls(at)gmail(dot)com> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Noah Misch <noah(at)leadboat(dot)com>, Melanie Plageman <melanieplageman(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, "Andrey M(dot) Borodin" <x4mmm(at)yandex-team(dot)ru> | 
| Subject: | Re: Confine vacuum skip logic to lazy_scan_skip | 
| Date: | 2025-10-30 11:13:56 | 
| Message-ID: | CANWCAZbNQMrN0YRW4Lj3h9ACSDnL84+hNN1JTfAisgYVftX4Gg@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Wed, Oct 22, 2025 at 11:12 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> The reason it thinks that num_offsets could be as much as 2048 is
> presumably the code a little bit above this:
>
>         OffsetNumber offsets[MaxOffsetNumber];
>         ...
>         num_offsets = TidStoreGetBlockOffsets(iter_result, offsets, lengthof(offsets));
>         Assert(num_offsets <= lengthof(offsets));
>
> However, lazy_vacuum_heap_page blindly assumes that the passed value
> will be no more than MaxHeapTuplesPerPage.  It seems like we ought
> to get these two functions in sync, either both using MaxOffsetNumber
> or both using MaxHeapTuplesPerPage for their array sizes.
>
> It looks to me like MaxHeapTuplesPerPage should be sufficient.
Seems right.
> Also, after reading TidStoreGetBlockOffsets I wonder if we
> should replace that Assert with
>
>         num_offsets = Min(num_offsets, lengthof(offsets));
>
> Thoughts?
Not sure. That changes the posture from "can't happen" to "shouldn't
happen, but if it does, don't cause a disaster". Even with the latter,
the assert still seems appropriate for catching developer mistakes.
--
John Naylor
Amazon Web Services
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Chao Li | 2025-10-30 11:15:34 | Re: Improve pg_sync_replication_slots() to wait for primary to advance | 
| Previous Message | Jim Jones | 2025-10-30 10:50:50 | Re: display hot standby state in psql prompt |