From: | Tomas Vondra <tomas(at)vondra(dot)me> |
---|---|
To: | arseniy(dot)mukhin(dot)dev(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org, PG Bug reporting form <noreply(at)postgresql(dot)org> |
Subject: | Re: BUG #18855: Using BRIN index with int8_bloom_ops produces incorrect results |
Date: | 2025-03-19 19:53:50 |
Message-ID: | bdcf6ac7-7b62-4d7d-8442-3d0822460ca3@vondra.me |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On 3/19/25 18:11, Tomas Vondra wrote:
> On 3/19/25 14:43, Tomas Vondra wrote:
>>
>> ...
>>
>> I'll get this fixed shortly. Unfortunately, this means the "bloom"
>> filters may be broken - not just those built in parallel, the union
>> method can be triggered due to concurrent activity too.
>>
>
> Here's a more complete version of the fix, along with a proper commit
> message, etc.
>
> While working on this, I realized there's a second (less severe issue,
> in that it fails to free the decompressed filters. I believe this would
> be mostly harmless before parallel builds, because we'd merge only one
> summary at a time, I think. With parallel builds it may be much worse,
> but I'm yet to try how bad.
>
> FWIW I think the minmax-multi has a similar memory leak.
>
After looking at this a bit closer, I realized the memory leak is much
less severe than I thought. The union_tuples() function does all the
work in a local memory context, so it's not the case we'd keep the
decompressed filters until the very end of the build.
I plan to simplify the fix a bit by not freeing filter_b.
regards
--
Tomas Vondra
From | Date | Subject | |
---|---|---|---|
Next Message | 谭忠涛 | 2025-03-20 01:11:33 | 回复:Re: The != and +/- signs are joined together as an operator |
Previous Message | Tomas Vondra | 2025-03-19 17:11:07 | Re: BUG #18855: Using BRIN index with int8_bloom_ops produces incorrect results |