IpcSemaphoreLock/Unlock and proc_exit on 7.2.6

From: Kris Jurka <books(at)ejurka(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: IpcSemaphoreLock/Unlock and proc_exit on 7.2.6
Date: 2004-11-14 03:43:01
Message-ID: Pine.BSO.4.56.0411132219160.29416@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


I have an underpowered server running 7.2.6 that backs a website which
occasionally gets hit by a bunch of traffic and starts firing off "FATAL
1: Sorry, too many clients already" messages. This is all as expected,
but sometimes it just crashes. I had no clue what was going on until I
checked the stderr log (because I had set it up to use syslog). In there
I find a whole bunch of these:

IpcSemaphoreLock: semop(id=-1) failed: Invalid argument
IpcSemaphoreLock: semop(id=-1) failed: Invalid argument
IpcSemaphoreLock: semop(id=-1) failed: Invalid argument
IpcSemaphoreLock: semop(id=-1) failed: Invalid argument
IpcSemaphoreUnlock: semop(id=-1) failed: Invalid argument
IpcSemaphoreLock: semop(id=-1) failed: Invalid argument
IpcSemaphoreUnlock: semop(id=-1) failed: Invalid argument
IpcSemaphoreLock: semop(id=-1) failed: Invalid argument

Looking at the source I see proc_exit as the failure path for these two
functions (IpcSemaphoreLock, IpcSemaphoreUnlock). I've read the comments
around the code, but must admit that I can't really follow what's going
on.

Could anyone shed some light on what is going on? Certainly the semId of
-1 looks a little suspicious.

This is on freebsd 4.5

Kris Jurka

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Joe Conway 2004-11-14 05:50:09 pgxs regression
Previous Message Travis P 2004-11-14 03:19:13 Re: CVS should die