After an linux system update on a hosted machine, our web application, running on an Apache 2.2 stopped working. Acutally, it was even worse: The whole Apache deamon crashed.
The log file said:
[emerg] (1)Operation not permitted: couldn't release the accept mutex
[alert] Child 10758 returned a Fatal error... Apache is exiting!
After some Google searching, some people came up with the solution to add the following line:
AcceptMutex posixsem
[Update]
I was thinking that the solution below works because I was using curl for testing and initially, curl returned an SSL error. After applying the changes explained below, this error was gone. However, there were some redirects and following these, Apache crashed again. Actually, using AcceptMutex
eventually did the trick and I was thinking I am smarter than I actually was -.-
[Update End]
However, I was asking myself why it would stop working after an update. When using curl to GET the web page, curl responded with an SSL error. So I was looking into the ssl-global.conf
log file which hat the following line:
SSLMutex "file:/var/lib/apache2/ssl_mutex"
Then I checked and found out that the file was missing. So presumably, after the update, they clear var
which is theoretically OK but Apache did not create the file again.
So I simply did:
touch /var/lib/apache2/ssl_mutex
chown wwwrun:www /var/lib/apache2/ssl_mutex
After restartarting Apache (probably not even necessary), everything worked again.