> On 27 Apr 2023, at 16:53, Melanie Plageman <melanieplageman@gmail.com> wrote:
> On Thu, Apr 27, 2023 at 8:55 AM Daniel Gustafsson <daniel@yesql.se> wrote:
>>
>>> On 27 Apr 2023, at 14:10, Masahiko Sawada <sawada.mshk@gmail.com> wrote:
>>> Good catch. I think the problem is that vacuum_rel() is called
>>> recursively and we don't reset VacuumFailsafeActive before vacuuming
>>> the toast table. I think we should reset it in heap_vacuum_rel()
>>> instead of Assert(). It's possible that we trigger the failsafe mode
>>> only for either one.Please find the attached patch.
>>
>> Agreed, that matches my research and testing, I have the same diff here and it
>> passes testing and works as intended. This was briefly discussed in [0] and
>> slightly upthread from there but then missed. I will do some more looking and
>> testing but I'm fairly sure this is the right fix, so unless I find something
>> else I will go ahead with this.
>>
>> xid_wraparound is a really nifty testing tool. Very cool.Makes sense to me too.
>
> Fix LGTM.
Thanks for review. I plan to push this in the morning.
> Though we previously set it to false before this series of patches,
> perhaps it is
> worth adding a comment about why VacuumFailsafeActive must be reset here
> even though we reset it before vacuuming each table?
Agreed.
--
Daniel Gustafsson