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 E1isSfZ-0002KE-2N@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
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/a801452c9e3008b473265cc690077244b65635dc

Modified Files
--------------
src/backend/utils/mmgr/slab.c | 34 ++++++++++++++++++++++++++--------
1 file changed, 26 insertions(+), 8 deletions(-)


pgsql-committers by date:

Previous
From: Tomas Vondra
Date:
Subject: pgsql: Allocate freechunks bitmap as part of SlabContext
Next
From: Alvaro Herrera
Date:
Subject: pgsql: Set ReorderBufferTXN->final_lsn more eagerly