BUG #8034: pg_buffercache gets invalid memory alloc request size with very large shared memory buffers - Mailing list pgsql-bugs

From dbenhur@whitepages.com
Subject BUG #8034: pg_buffercache gets invalid memory alloc request size with very large shared memory buffers
Date
Msg-id E1UN77q-0001Ym-0V@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #8034: pg_buffercache gets invalid memory alloc request size with very large shared memory buffers  (Mark Kirkwood <mark.kirkwood@catalyst.net.nz>)
List pgsql-bugs
The following bug has been logged on the website:

Bug reference:      8034
Logged by:          Devin Ben-Hur
Email address:      dbenhur@whitepages.com
PostgreSQL version: 9.2.3
Operating system:   Ubuntu Precise
Description:        =


When a very large shared buffer pool (~480GB) is used with postgresql,
pg_buffercache contrib module gets an allocation error trying to Allocate
NBuffers worth of BufferCachePagesRec records:

https://github.com/postgres/postgres/blob/REL9_2_3/contrib/pg_buffercache/p=
g_buffercache_pages.c#L101-L102

The requested allocation exceeds the 1GB limitation imposed by
AllocSizeIsValid macro:
https://github.com/postgres/postgres/blob/REL9_2_3/src/include/utils/memuti=
ls.h#L40-L43

Reproduce:
1) acquire server with half terabyte of memory
2) tweak OS settings to allow large shared memory
3) set postgresql.conf: shared_buffers =3D 400GB
4) CREATE EXTENSION pg_buffercache;
5) SELECT * FROM pg_buffercache LIMIT 1;

pgsql-bugs by date:

Previous
From: Andres Freund
Date:
Subject: Re: Completely broken replica after PANIC: WAL contains references to invalid pages
Next
From: zahid.quadri@cloverinfotech.com
Date:
Subject: BUG #8036: how to disable toasting