Está en: » Notas y recortes »

Apache: No space left on device: Couldn’t create accept lock

Apache: No space left on device: Couldn’t create accept lock

El servidor web Apache lo he visto fallar de dos formas distintas (persistentes a reinicios) por el mismo problema de semáforos. Vamos a ver cómo solucionarlo:

En varias ocasiones he visto el siguiente error en el log:

[emerg] (28)No space left on device: Couldn't create accept lock

Pero también podemos encontrarnos que el server arranca y esta escuchando perono nos devuelve nada:

$ curl -I localhost -H 'Host: ejemplo.com'
curl: (52) Empty reply from server

Y van apareciendo Segmentation faults en el log de error:

[notice] child pid 8033 exit signal Segmentation fault (11)

Causado por los semáforos que usa para comunicarse con los “apachitos” que no se han liberado:

# ipcs -s

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0x00000000 2818048    apache    600        1         
0x00000000 15073281   apache    600        1         
0x00000000 15106050   apache    600        1         
0x00000000 425987     jprats    600        1         
(...)

Deberemos apagar el apache y limpiarlos con ipcrm:

for i in $(ipcs -s | awk ' $3 == "apache" {print $2}'); do ipcrm sem $i; done
resource(s) deleted

A continuación, ya lo podemos arrancar. Dicho comando es seguro ejecutarlo antes de arrancar el apache, por lo que lo podemos definir en el script de inicio y evitar así que surja el problema y tener que intervenir manualmente.

Apache: No space left on device: Couldn’t create accept lock | systemadmin.es.

Comentarios

Deje su comentario

Previsualización de comentario
  1. Anónimo dice: