Re: failed NUMA pages inquiry status: Operation not permitted
Tomas Vondra <tomas@vondra.me>
From: Tomas Vondra <tomas@vondra.me>
To: Christoph Berg <myon@debian.org>,
Tomas Vondra <tomas.vondra@postgresql.org>,
Jakub Wartak <jakub.wartak@enterprisedb.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2025-10-16T14:27:47Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Handle EPERM in pg_numa_init
- 599336c64fc9 19 (unreleased) landed
- 482e98ac4302 18.2 landed
-
Add CHECK_FOR_INTERRUPTS into pg_numa_query_pages
- 54ac4944c36f 18.0 landed
- bf1119d74a79 19 (unreleased) landed
-
Silence valgrind about pg_numa_touch_mem_if_required
- 14e52227e578 18.0 landed
- 81f287dc923f 19 (unreleased) landed
-
Limit the size of numa_move_pages requests
- 45879f48f140 18.0 landed
- 7fe2f67c7c9f 19 (unreleased) landed
-
Introduce pg_shmem_allocations_numa view
- 8cc139bec34a 18.0 cited
On 10/16/25 13:38, Christoph Berg wrote: >> src/test/regress/expected/numa.out | 13 +++ >> src/test/regress/expected/numa_1.out | 5 + > > numa_1.out is catching this error: > > ERROR: libnuma initialization failed or NUMA is not supported on this platform > > This is what I'm getting when running PG18 in docker on Debian trixie > (libnuma 2.0.19). > > However, on older distributions, the error is different: > > postgres =# select * from pg_shmem_allocations_numa; > ERROR: XX000: failed NUMA pages inquiry status: Operation not permitted > LOCATION: pg_get_shmem_allocations_numa, shmem.c:691 > > This makes the numa regression tests fail in Docker on Debian bookworm > (libnuma 2.0.16) and older and all of the Ubuntu LTS releases. > It's probably more about the kernel version. What kernels are used by these systems? > The attached patch makes it accept these errors, but perhaps it would > be better to detect it in pg_numa_available(). > Not sure how would that work. It seems this is some sort of permission check in numa_move_pages, that's not what pg_numa_available does. Also, it may depending on the page queried (e.g. whether it's exclusive or shared by multiple processes). thanks -- Tomas Vondra