Re: BUG #17619: AllocSizeIsValid violation in parallel hash join
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Thomas Munro <thomas.munro@gmail.com>,
Dmitry Astapov <dastapov@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2022-09-27T18:32:53Z
Lists: pgsql-bugs
Attachments
- v1-0001-Add-CLOBBER_FREED_MEM-to-shm_toc_allocate.patch (application/octet-stream) patch v1-0001
On Tue, Sep 27, 2022 at 9:44 AM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Right, the missing piece is the intentional clobber. That does seem like the best place to start. The attached patch adds clobbering that works exactly as you'd expect. This approach is obviously correct. It also doesn't require any reasoning about Valgrind's treatment of memory mappings for shared memory, which is quite complicated given the inconsistent rules about who initializes what memory (if it's leader or workers). I find that the tests pass with this patch -- so it probably won't catch the bug that Thomas mentioned via running the tests (at least not reliably). However, if I revert parallel VACUUM bugfix commit 662ba729 and then run the tests, they fail very reliably, in several places. That seems like a big improvement. I believe that Thomas was going to do something like this anyway. I'm happy to leave it up to him, but I can pursue this separately if that makes sense. -- Peter Geoghegan
Commits
-
Fix rare sharedtuplestore.c corruption.
- d95dcc9ab5f8 11.19 landed
- b55303792afe 12.14 landed
- 1a5afe007779 13.10 landed
- 2f65b84683b7 14.7 landed
- d9f5345bf907 15.2 landed
- ffcf6f4cfca5 16.0 landed
-
Initialize index stats during parallel VACUUM.
- 662ba729a67e 16.0 cited
-
Stamp 13.8.
- 4bc493d14409 13.8 cited