From dae3463fa969931458f1488f9b7af11e3741cd54 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Thu, 24 Sep 2026 14:38:17 +0300 Subject: [PATCH] Fix assertion in pg_get_shmem_pagesize() in single-user mode Remove assertion that was too strict, and tripped if you queried the pg_shmem_allocations_numa or the pg_buffercache_os_pages view in single-user mode. The point of the assertion was that the function should only be called after "the server has started", but it would be OK to call it from the postmaster, too, as long as it's after startup, specifically after huge_pages_status has been set. We already have a direct assertion for that. Author: Ayush Tiwari Discussion: https://www.postgresql.org/message-id/CAJTYsWV-=w5_oFgCnfAixWGc=gMa2pkDinLyGLsb4sKcDaf2FA@mail.gmail.com Backpatch-through: 18 --- src/backend/storage/ipc/shmem.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c index 720d30e8f6f..99cf27216ca 100644 --- a/src/backend/storage/ipc/shmem.c +++ b/src/backend/storage/ipc/shmem.c @@ -1379,7 +1379,7 @@ pg_get_shmem_allocations_numa(PG_FUNCTION_ARGS) * If the shared segment was allocated using huge pages, returns the size of * a huge page. Otherwise returns the size of regular memory page. * - * This should be used only after the server is started. + * This should be used only after shared memory has been initialized. */ Size pg_get_shmem_pagesize(void) @@ -1394,7 +1394,6 @@ pg_get_shmem_pagesize(void) os_page_size = sysconf(_SC_PAGESIZE); #endif - Assert(IsUnderPostmaster); Assert(huge_pages_status != HUGE_PAGES_UNKNOWN); if (huge_pages_status == HUGE_PAGES_ON)