Semaphores not freed when graceful reload of apache (11.3)

Hi,

On a fresh install of OpenSuse 11.3, when I do /etc/init.d/apache2 reload, new semaphores are created and never freed (owned by root).

We have a script on that machine that is supposed to reload apache automatically when its configuration changes. The script runs every minute, and, after a while, apache stops functionning because the kernel semaphore limit has been reached.

rproxy02:~ # ipcs -su

------ Semaphore Status --------
used arrays = 7
allocated semaphores = 7

rproxy02:~ # /etc/init.d/apache2 reload
Reload httpd2 (graceful restart)                                                                                                                  done
rproxy02:~ # ipcs -su

------ Semaphore Status --------
used arrays = 9
allocated semaphores = 9

rproxy02:~ #

After less than an hour :

rproxy02:~ # ipcs -s

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x00000000 0          wwwrun     600        1
0x00000000 32769      root       600        1
0x00000000 163842     root       600        1
0x00000000 98307      root       600        1
0x00000000 196612     root       600        1
0x00000000 557061     root       600        1
0x00000000 589830     root       600        1
0x00000000 360455     root       600        1
0x00000000 393224     root       600        1
0x00000000 491529     root       600        1
0x00000000 524298     root       600        1
0x00000000 688139     root       600        1
0x00000000 720908     root       600        1
0x00000000 753677     root       600        1
0x00000000 786446     root       600        1
0x00000000 917519     root       600        1
0x00000000 950288     root       600        1
0x00000000 884753     root       600        1
0x00000000 983058     root       600        1
0x00000000 1179667    root       600        1
0x00000000 1277972    root       600        1
0x00000000 1081365    root       600        1
0x00000000 1114134    root       600        1
0x00000000 1146903    root       600        1
0x00000000 1310744    root       600        1
0x00000000 1343513    wwwrun     600        1
0x00000000 1376282    wwwrun     600        1
0x00000000 1409051    root       600        1
0x00000000 1441820    root       600        1
0x00000000 1474589    root       600        1


Apparently this is caused my mod_security. The problem is solved when I disable the module.

The problem was because of “mlogc” (known issue from modsecurity 2.5.9). Solved by compilling and installing modsecurity 2.5.12.