[COMMITTERS] pgsql: Avoid SIGBUS on Linux when a DSM memory request overruns tmpfs. - Mailing list pgsql-committers

From Tom Lane
Subject [COMMITTERS] pgsql: Avoid SIGBUS on Linux when a DSM memory request overruns tmpfs.
Date
Msg-id E1dwZhA-0006EU-Uk@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Avoid SIGBUS on Linux when a DSM memory request overruns tmpfs.

On Linux, shared memory segments created with shm_open() are backed by
swap files created in tmpfs.  If the swap file needs to be extended,
but there's no tmpfs space left, you get a very unfriendly SIGBUS trap.
To avoid this, force allocation of the full request size when we create
the segment.  This adds a few cycles, but none that we wouldn't expend
later anyway, assuming the request isn't hugely bigger than the actual
need.

Make this code #ifdef __linux__, because (a) there's not currently a
reason to think the same problem exists on other platforms, and (b)
applying posix_fallocate() to an FD created by shm_open() isn't very
portable anyway.

Back-patch to 9.4 where the DSM code came in.

Thomas Munro, per a bug report from Amul Sul

Discussion: https://postgr.es/m/1002664500.12301802.1471008223422.JavaMail.yahoo@mail.yahoo.com

Branch
------
REL9_6_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/1750612224704043218fac81e29c05d866e866ce

Modified Files
--------------
configure                          |  2 +-
configure.in                       |  2 +-
src/backend/storage/ipc/dsm_impl.c | 54 ++++++++++++++++++++++++++++++++++++--
src/include/pg_config.h.in         |  3 +++
src/include/pg_config.h.win32      |  3 +++
5 files changed, 60 insertions(+), 4 deletions(-)


--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [COMMITTERS] pgsql: Give a better error for duplicate entries in VACUUM/ANALYZE colu
Next
From: Peter Eisentraut
Date:
Subject: Re: [COMMITTERS] pgsql: Give a better error for duplicate entries inVACUUM/ANALYZE colu