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


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to