diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2013-10-24 21:51:00 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2013-10-24 21:51:30 -0400 |
commit | 5e1e47c7c00d01d1b2fd3a4354f48be427a30f67 (patch) | |
tree | a4a308bdba71db807cdcf792019ffe816677fb01 | |
parent | 3147acd63e0135aff9a6c4b01d861251925d97d9 (diff) | |
download | postgresql-5e1e47c7c00d01d1b2fd3a4354f48be427a30f67.tar.gz postgresql-5e1e47c7c00d01d1b2fd3a4354f48be427a30f67.zip |
Ignore SIGSYS during initdb.
This prevents the recently-added probe for shm_open() from crashing
on platforms that are impolite enough to deliver a signal rather than
returning ENOSYS for an unimplemented kernel call. At least on the
one known example (HPUX 10.20), ignoring SIGSYS does result in the
desired behavior of getting an ENOSYS error return instead.
Per discussion, we might later wish to do this in the backend as well,
but for now it seems sufficient to do it in initdb.
-rw-r--r-- | src/bin/initdb/initdb.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c index 3983b237313..30e3701f92a 100644 --- a/src/bin/initdb/initdb.c +++ b/src/bin/initdb/initdb.c @@ -3197,6 +3197,11 @@ setup_signals(void) #ifdef SIGPIPE pqsignal(SIGPIPE, SIG_IGN); #endif + + /* Prevent SIGSYS so we can probe for kernel calls that might not work */ +#ifdef SIGSYS + pqsignal(SIGSYS, SIG_IGN); +#endif } |