On Tue, 30 Aug 2022 at 03:39, Tomas Vondra <tomas.von...@enterprisedb.com> wrote: > The attached patch seems to fix the issue for me - at least it seems > like that. This probably will need to get backpatched, I guess. Maybe we > should add an assert to MemoryChunkGetPointer to check alignment?
Hi Tomas, I just wanted to check with you if you ran the full make check-world with this patch? I don't yet have a working ARM 32-bit environment to test, but on trying it with x86 32-bit and adjusting MAXIMUM_ALIGNOF to 8, I'm getting failures in test_decoding. Namely: test twophase ... FAILED 51 ms test twophase_stream ... FAILED 25 ms INSERT INTO test_prepared2 VALUES (5); SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'include-xids', '0', 'skip-empty-xacts', '1'); +WARNING: problem in slab Change: detected write past chunk end in block 0x58b8ecf0, chunk 0x58b8ed08 +WARNING: problem in slab Change: detected write past chunk end in block 0x58b8ecf0, chunk 0x58b8ed58 +WARNING: problem in slab Change: detected write past chunk end in block 0x58b8ecf0, chunk 0x58b8eda8 +WARNING: problem in slab Change: detected write past chunk end in block 0x58b8ecf0, chunk 0x58b8edf8 +WARNING: problem in slab Change: detected write past chunk end in block 0x58b8ecf0, chunk 0x58b8ee48 I think the existing sentinel check looks wrong: if (!sentinel_ok(chunk, slab->chunkSize)) shouldn't that be passing the pointer rather than the chunk? David