Re: BUG #17619: AllocSizeIsValid violation in parallel hash join - Mailing list pgsql-bugs

From Thomas Munro
Subject Re: BUG #17619: AllocSizeIsValid violation in parallel hash join
Date
Msg-id CA+hUKGL1OuDjd5EipFwUnKxKUTWZLhLssBHLOj4Vzo46M9XCYw@mail.gmail.com
Whole thread Raw
In response to Re: BUG #17619: AllocSizeIsValid violation in parallel hash join  (Dmitry Astapov <dastapov@gmail.com>)
Responses Re: BUG #17619: AllocSizeIsValid violation in parallel hash join
List pgsql-bugs
On Fri, Sep 23, 2022 at 4:38 AM Dmitry Astapov <dastapov@gmail.com> wrote:
>> I think >= on line 342 should be just > . I tried this change locally, and it fixed the issue for me.
>>
>> Do you agree with my analysis?

Yeah.  It was hard to repro the problem from SQL, so I wrote a C
module to show the issue.  CREATE EXTENSION test_sts; SELECT
test_sts(10, 32756); shows it, and is fixed by your proposed change.
I will look at the analysis and fix some more next week, and see if
the test can be improved some more and is worth keeping.

While testing with that module I found another bug: the
per-participant npages counter was not explicitly initialised to zero
in sts_initialize().  That wasn't exactly a problem when the code was
written because new DSM memory is always zeroed and this always
happens in new DSM memory, but it shows up in this test module because
it uses palloc() memory instead.  It *is* a problem since v14, if you
use min_dynamic_shared_memory for a pool of recyclable shared memory,
because then it is not zeroed.

Attachment

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #17618: unnecessary filter column <> text even after adding index
Next
From: Tom Lane
Date:
Subject: Re: BUG #17619: AllocSizeIsValid violation in parallel hash join