I’m running an ASP.NET MVC2 application under mod_mono with mono 2.8.1 and currently have to periodically clear out semaphore arrays that apache seems to be leaking.
I started with mono rpm’s for 2.6.7 a while back but had had some issues both with leaking semaphore arrays (i.e. more and more accumulating in ipcs) and some incompatibility with ASP.NET MVC2, so I built 2.8 from source. The leak continued, so I just built 2.8.1 from source and the same thing is still happening. This is on an Amazon AMI (i guess it’s centos under the hood). The symptoms are that semaphore arrays keep building up and if i don’t manually remove them with ipcrm after a while requests to ASP.NET pages return no content with no errors in the logs. I’ve also reproduced the same issue in an centos 5.4 AMI.
Is anyone successfully running ASP.NET under apache/mod_mono and I’m just running into some edge case? Since I can’t find any mentions of this happening to anyone else, I assume it’s not general ASP.NET bug. Any ideas how i can troubleshoot this further?
Finally figured this out and while the solution exposes my own mistake of not following up other warning I was receiving, i figure this should be useful to anyone else runnning into this.
By default apache config has the below config order:
I.e. all conf files (usually where vhosts are defined) are loaded before httpd user and group are set. This results in the below warning on restart:
While everything seems to work anyhow, this is the cause for the semaphore leak. If you move the
Includeafter theUser/Group, the warning goes away and mod_mono no longer leaks semaphores.