MemoryContextCreate: assert parent is valid and different from node.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 21 Apr 2025 15:34:36 +0000 (11:34 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 21 Apr 2025 15:34:36 +0000 (11:34 -0400)
commit5ec8b01c30e7ea34bb42592ad9d34d4b02ea593d
treed2e47852d18582145ceb6a3c68225d05e1292248
parent706cbed351037fb5e886815506515d1281e62d40
MemoryContextCreate: assert parent is valid and different from node.

The case of "node == parent" might seem impossible, since we just
allocated the new node.  But it's possible if parent is a dangling
reference to a recently-deleted context.  In fact, given aset.c's
habit of recycling contexts, it's actually rather likely if that's so.
If we'd had this assertion before, it would have simplified debugging
a recently-identified walsender issue.

Reported-by: Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CAO6_XqoJA7-_G6t7Uqe5nWF3nj+QBGn4F6Ptp=rUGDr0zo+KvA@mail.gmail.com
src/backend/utils/mmgr/mcxt.c