pgsql: Allocate freechunks bitmap as part of SlabContext - Mailing list pgsql-committers

From Tomas Vondra
Subject pgsql: Allocate freechunks bitmap as part of SlabContext
Date
Msg-id E1isSe0-0002Gg-Od@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Allocate freechunks bitmap as part of SlabContext

The bitmap used by SlabCheck to cross-check free chunks in a block used
to be allocated for each SlabCheck call, and was never freed. The memory
leak could be fixed by simply adding a pfree call, but it's actually a
bad idea to do any allocations in SlabCheck at all as it assumes the
state of the memory management as a whole is sane.

So instead we allocate the bitmap as part of SlabContext, which means
we don't need to do any allocations in SlabCheck and the bitmap goes
away together with the SlabContext.

Backpatch to 10, where the Slab context was introduced.

Author: Tomas Vondra
Reported-by: Andres Freund
Reviewed-by: Tom Lane
Backpatch-through: 10
Discussion: https://www.postgresql.org/message-id/20200116044119.g45f7pmgz4jmodxj%40alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/543852fd8bf0adc56192aeb25ff83f1a12c30368

Modified Files
--------------
src/backend/utils/mmgr/slab.c | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)


pgsql-committers by date:

Previous
From: Andrew Dunstan
Date:
Subject: pgsql: bump catalog version as should have been done for jsonb_set_lax
Next
From: Tomas Vondra
Date:
Subject: pgsql: Allocate freechunks bitmap as part of SlabContext