winnt_accept: Asynchronous AcceptEx failed Error in Apache Log

»»»winnt_accept: Asynchronous AcceptEx failed Error in Apache Log
If you run Apache on a server that is running on particularly Windows 2000, Windows XP or Windows 2003, you may notice the following semaphore error in the error log of Apache web server:

[Sun Oct 16 03:28:32 2005] [warn] (OS 64)The specified network name is no
longer available. : winnt_accept: Asynchronous AcceptEx failed.[Sun Oct 16 03:32:05 2005] [warn] (OS 121)The semaphore timeout period has
expired. : winnt_accept: Asynchronous AcceptEx failed.

There are no specific know cause to this error. Initially it’s speculated that firewall and antivirus utility caused the error, but even after you disable antivirus software and firewall, the error will still occurs. Now, most relates the problem to the DHCP lease negotiation, due to an enhancement request to handle dynamic IP assignment, of which Apache doesn’t handle IP transitions in that way.

According to Apache documentation, AcceptEx() is a Microsoft WinSock v2 API that provides some performance improvements over the use of the BSD style accept() API in certain circumstances. Some popular Windows products, typically virus scanning or virtual private network packages, have bugs that interfere with the proper operation of AcceptEx().

The resolution to the above problem is to disable the use of AcceptEx by using Win32DisableAcceptEx directive. Win32DisableAcceptEx only available in Apache version 2.0.49 and later version though.

Win32DisableAcceptEx directive should be place in httpd.conf configuration file. If you are using distribution from apachefriend’s xampp, the directive should be placed at httpd.conf file too, and not the httpd-mpm configuration file. The directive can be placed together with the line of #EnableMMAP off and #EnableSendfile off in httpd.conf.

If you still facing issue after enable the Win32DisableAcceptEx directive, try to uncomment (disable) the EnableMMAP and EnableSendfile directive. The line should looks like this:

EnableMMAP off
EnableSendfile off
Win32DisableAcceptEx

Note: I found that enable Win32DisableAcceptEx directive cause Apache running on Windows XP to crash frequently. So it’s possibe to try to just turn off (uncomment) EnableMMAP and EnableSendfile without Win32DisableAcceptEx for stability issue, although it doesn’t guarantee reliability of Apache web server.

By |2016-12-09T08:43:19+00:00December 9th, 2016|Categories: Web Servers|Tags: , |23 Comments

About the Author:

LK is a technology writer for Tech Journey with background of system and network administrator. He has be documenting his experiences in digital and technology world for over 15 years.Connect with LK through Tech Journey on Facebook, Twitter or Google+.