Solaris descendants (Illumos, OpenIndiana, OmniOS, etc.) hit System V
semaphore limits ("No space left on device" from semget) when running
many parallel test scripts under default system settings. We could
tell people to raise those settings, but there's a better answer.
Unnamed POSIX semaphores have been available on Solaris for decades
and work well, so prefer them, as was recently done for AIX.
This patch also updates the documentation to remove now-unnecessary
advice about raising project.max-sem-ids and project.max-msg-ids.
Author: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Greg Burd <greg@burd.me>
Discussion: https://postgr.es/m/470305.
1772417108@sss.pgh.pa.us
</para>
<para>
- Other recommended kernel setting changes for database servers which will
- have a large number of connections are:
-<programlisting>
-project.max-shm-ids=(priv,32768,deny)
-project.max-sem-ids=(priv,4096,deny)
-project.max-msg-ids=(priv,4096,deny)
-</programlisting>
+ To run a very large server, or multiple servers concurrently, you
+ might also need to raise <literal>project.max-shm-ids</literal>.
</para>
<para>
elif host_system == 'sunos'
portname = 'solaris'
+ sema_kind = 'unnamed_posix'
export_fmt = '-Wl,-M@0@'
# We need these #defines to get POSIX-conforming versions
# of many interfaces (sigwait, getpwuid_r, shmdt, ...).
# src/template/solaris
+# Prefer unnamed POSIX semaphores if available, unless user overrides choice
+if test x"$PREFERRED_SEMAPHORES" = x"" ; then
+ PREFERRED_SEMAPHORES=UNNAMED_POSIX
+fi
+
# Extra CFLAGS for code that will go into a shared library
CFLAGS_SL="-fPIC"