So far they were created below CacheMemoryContext. However, that's not
guaranteed to exist in all situations, leading to memory contexts created as
top-level contexts. There isn't actually a good reason anymore to create them
below CacheMemoryContext, so just creating them below TopMemoryContext seems
the best approach.
Reported-by: Reid Thompson
Reviewed-by: Kyotaro Horiguchi
Reviewed-by: Andres Freund
Author: "Drouvot, Bertrand"
Discussion: https://postgr.es/m/b948b729-42fe-f88c-2f4a-0e65d84c049b@amazon.com
Backpatch: 15-
if (unlikely(!pgStatPendingContext))
{
pgStatPendingContext =
- AllocSetContextCreate(CacheMemoryContext,
+ AllocSetContextCreate(TopMemoryContext,
"PgStat Pending",
ALLOCSET_SMALL_SIZES);
}
{
if (unlikely(!pgStatSharedRefContext))
pgStatSharedRefContext =
- AllocSetContextCreate(CacheMemoryContext,
+ AllocSetContextCreate(TopMemoryContext,
"PgStat Shared Ref",
ALLOCSET_SMALL_SIZES);
if (unlikely(!pgStatEntryRefHashContext))
pgStatEntryRefHashContext =
- AllocSetContextCreate(CacheMemoryContext,
+ AllocSetContextCreate(TopMemoryContext,
"PgStat Shared Ref Hash",
ALLOCSET_SMALL_SIZES);
}