From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Dmitry Astapov <dastapov(at)gmail(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #17619: AllocSizeIsValid violation in parallel hash join |
Date: | 2022-09-24 00:10:41 |
Message-ID: | CA+hUKGLGazWPn+oUNegBVmt_9jckHZnGOT4kAYbMKLKJ0UfmBA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 503 토토 핫 페치 실패 |
On Sat, Sep 24, 2022 at 11:19 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Thomas Munro <thomas(dot)munro(at)gmail(dot)com> writes:
> > 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.
>
> That's a fairly scary observation. What other places are silently
> expecting such memory to be zeroed? Do we need to fix things so
> that min_dynamic_shared_memory doesn't break this API?
It wasn't assuming the memory was zeroed generally -- it initialises
various other members -- it just failed to do that for one member.
I'll survey other DSM users this week to see that they aren't relying
on zeroes like that. For the parallel query DSM segment,
access/transam/parallel.c even has a case that replaces dsm_create()
with MemoryContextAlloc() sans MCXT_ALLOC_ZERO flag, and I am not
aware of any documented or undocumented expectation that it's
zero-initialised. A quick check like this in dsm_create() doesn't
break any tests:
+#ifdef CLOBBER_FREED_MEMORY
+ memset(seg->mapped_address, 0xff, seg->mapped_size);
+#endif
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Geoghegan | 2022-09-24 00:12:19 | Re: BUG #17619: AllocSizeIsValid violation in parallel hash join |
Previous Message | Richard Guo | 2022-09-24 00:06:06 | Re: BUG #17618: unnecessary filter column <> text even after adding index |