Friday, 19 April 2013

Apache error: winnt_accept: Asynchronous AcceptEx failed.

Si tienes Apache instalado en Windows y te encuentras con este error en el error.log:

[warn] (OS 996)El evento superpuesto de E/S no es un estado señalado. : winnt_accept: Asynchronous AcceptEx failed.

Tambien puede tener problemas cargando paginas, por ejemplo Firefox muestra este error, no siempre lo muestra pero cada cierto tiempo (a mi me paso)

La conexión al servidor fue reiniciada mientras la página se cargaba

Existe una solucion provisional ya que todavia no se sabe la verdadera causa del error

Quizas sea el firewall o antivirus asi que chequea eso primero
El problema mas relacionado con este error es el DHCP, problemas con las IPs dinamicas

Segun en la documantacion de Apache, AcceptEx() es una API de Microsoft WinSock v2 que provee en ciertas circuntancias buenos resultados por encima de la API de BSD accept(). Algunos programas para Windows, como antitirus o firewall, tienen bugs que interfieren con la operacion de AcceptEx()

 

Solucion:


Esta solucion es para evitar el uso de AcceptEx() usando la directiva Win32DisableAcceptEx. Esta opcion esta disponible a partir de la version 2.0.49 de Apache


  1. Edita el archivo httpd.conf
  2. Busca esta linea en el archivo: EnableMMAP
  3. Veras que esta comentada
  4. Descomentala
EnableMMAP off
EnableSendfile off

Win32DisableAcceptEx
Luego reinicia Apache

NOTA: si tienes problemas despues de haber habilitado la opcion Win32DisableAcceptEx, intenta dejandolo sin Win32DisableAcceptEx:

EnableMMAP off
EnableSendfile off


FUENTE (ingles)


Publicado en tttony.blogspot.com

No comments:

Post a Comment