mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +03:00
Significant cleanups in SysV IPC handling (shared mem and semaphores).
IPC key assignment will now work correctly even when multiple postmasters are using same logical port number (which is possible given -k switch). There is only one shared-mem segment per postmaster now, not 3. Rip out broken code for non-TAS case in bufmgr and xlog, substitute a complete S_LOCK emulation using semaphores in spin.c. TAS and non-TAS logic is now exactly the same. When deadlock is detected, "Deadlock detected" is now the elog(ERROR) message, rather than a NOTICE that comes out before an unhelpful ERROR.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.16 2000/11/22 01:41:13 momjian Exp $
|
||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.17 2000/11/28 23:27:54 tgl Exp $
|
||||
Postgres documentation
|
||||
-->
|
||||
|
||||
@ -400,32 +400,6 @@ $ ps -e | grep postmast
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><computeroutput>
|
||||
IpcMemoryAttach: shmat() failed: Permission denied
|
||||
</computeroutput></term>
|
||||
<listitem>
|
||||
<para>
|
||||
A likely explanation is that another user attempted to start a
|
||||
<application>postmaster</application>
|
||||
process on the same port which acquired shared resources and then
|
||||
died. Since Postgres shared memory keys are based on the port number
|
||||
assigned to the
|
||||
<application>postmaster</application>,
|
||||
such conflicts are likely if there is more than one installation on
|
||||
a single host. If there are no other
|
||||
<application>postmaster</application>
|
||||
processes currently running (see above), run
|
||||
<application>ipcclean</application>
|
||||
and try again. If other <application>postmaster</application>
|
||||
images
|
||||
are running, you will have to find the owners of those processes to
|
||||
coordinate the assignment of port numbers and/or removal of unused
|
||||
shared memory segments.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
</refsect2>
|
||||
|
Reference in New Issue
Block a user