[WBEL-users] Semaphore Arrays

John Hinton webmaster@ew3d.com
Fri, 02 Jul 2004 00:31:20 -0400


Well, very interesting... I'm running WBEL 3.0 with the original kernel. 
I do have FPEs on it and am running some heavy PHP/MySQL aps. Pretty 
heavy server load and wah lah... Apache won't restart! Look at the logs 
and find

(28)No space left on device: mod_rewrite: could not create rewrite_log_lock

So, do some searches on this one and come up with Semaphore Arrays which 
aren't being dumped. So I do a ipcs -s and sure enough, there's a list 
as long as my arm.. 128 to be exact, which is the limit! So, more 
searhing.. this was a problem on Redhat 7.1, 7.2, 7.3 and then on 8 and 
9 and then it got fixed and then it got broken in AS 2.1 and my guess is 
RedHat managed to break it yet again on 3.0!

So, I'm a bit curious as to if anybody has hit this one besides me. What 
I read on FPEs is it broke on the 64th apache restart, but my system is 
not leaving behind two per reboot, so I wonder about the FPE thing in 
this case? (Yeah, maybe yet another good reason to forget FPEs).

Here's a bit from my returned list of Semaphore Arrays

key        semid      owner      perms      nsems    
0x00000000 131072     apache    600        1        
0x00000000 163841     apache    600        1        
0x00000000 229378     apache    600        1        
0x00000000 262147     apache    600        1        
0x00000000 524292     apache    600        1        
0x00000000 557061     apache    600        1        
0x00000000 720902     apache    600        1        
0x00000000 753671     apache    600        1        
0x00000000 819208     apache    600        1        
0x00000000 851977     apache    600        1        
0x00000000 917514     apache    600        1        

and the semid numbers just climb as it goes to the 128th one listed. All 
owned by apache.

I have not been able to find any particular mention of this on RHEL 3, 
with 2.1 being the latest I could google. I've been adding a lot of 
virtualhost and doing a lot of restarts, but have yet to determine if 
this only happens during a restart or if it happens as time passes and 
something else perhaps doing this.

I sure would like to see a fix for this beyond having to manually remove 
them with

ipcs -s | perl -ane '/^0x00000000/ && `ipcrm -s $F[1]`'

which is the proper command for a WBEL machine.

Well, after an hour or so, ipcs -s shows 4 listings... and then after a 
httpd restart, there are now five... So perhaps with a bit of time 
between restarts, it does grow by one. So now I have 5 of these, so I 
guess maybe I have another 123 apache restarts before it crashes again? 
Well, just checked again and now it's at six with no restart. I wonder 
how many of these are supposed to be running on average?

John Hinton