postgres.git / summary / log / commit / refs
commit 3f83de20ba2e1d4bd557d92b3436ca04b7c947a8
Author: Michael Paquier <michael@paquier.xyz>
Date: Thu Dec 11 05:11:06 2025 +0000
First released in: 18.2
pg_buffercache: Fix memory allocation formula
The code over-allocated the memory required for os_page_status, relying
on uint64 for its element size instead of an int, hence doubling what
was required. This could mean quite a lot of memory if dealing with a
lot of NUMA pages.
Oversight in ba2a3c2302f1.
Author: David Geier <geidav.pg@gmail.com>
Discussion: https://postgr.es/m/ad0748d4-3080-436e-b0bc-ac8f86a3466a@gmail.com
Backpatch-through: 18
contrib/pg_buffercache/pg_buffercache_pages.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/contrib/pg_buffercache/pg_buffercache_pages.c b/contrib/pg_buffercache/pg_buffercache_pages.c
index 702307a49e2..e18fed22046 100644
--- a/contrib/pg_buffercache/pg_buffercache_pages.c
+++ b/contrib/pg_buffercache/pg_buffercache_pages.c
@@ -383,7 +383,7 @@ pg_buffercache_os_pages_internal(FunctionCallInfo fcinfo, bool include_numa)
/* Used to determine the NUMA node for all OS pages at once */
os_page_ptrs = palloc0(sizeof(void *) * os_page_count);
- os_page_status = palloc(sizeof(uint64) * os_page_count);
+ os_page_status = palloc(sizeof(int) * os_page_count);
/*
* Fill pointers for all the memory pages. This loop stores and
[parent: 1362bc33e025]