Printable Version 
kb8040201 - Apache error - An operation on something that is not a socket
   
Support
 
kb8040201 - Apache error - An operation on something that is not a socket
  Description

Symptoms

When looking at the error log file of the Apache Web Server, you may notice that the file is growing constantly. Opening the error.log file you should find a line as following:
[error] (OS 10038)An operation was attempted on something that is not a socket. : Child 5364: Encountered too many errors accepting client connections. Possible causes: dynamic address renew, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.

Cause

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().
For more information, please consult Apache Documentation.

Resolution

You should use this directive to disable the use of AcceptEx() and to do so, follow this short procedure:
  1. Turn off the Apache Web server
    1. Select Start/Run.
    2. Type net stop Apache2 and press Enter.
  2. Edit the Apache configuration file
    1. Select Start/Run .
    2. Type notepad c:\progra~1\apache~1\apache2\conf\httpd.conf and press Enter.
      Note: The Apache installation path may differ if you choose a different path during installation.
  3. Insert the new directive
    1. Locate the line Listen 80.
      Note: where 80 is the default listening port and could be different if you specified so when installing.
    2. Append a new line just after the Listen 80 directive.
    3. Insert the following directive: Win32DisableAcceptEx
      Note: Apache is case sensitive, be sure to type the directive as it is.
  4. Delete the access log file (facultative)
    1. Locate the C:\Program Files\Apache Group\Apache2\Log\Error.log file in Windows Explorerand delete it.
      Note 1: The Apache installation path may differ if you choose a different path during installation. 
  5. Turn the Apache Web server on
      1. Select Start/Run .
      2. Type net start Apache2 and press Enter.
To verify if the procedure succeeded, you could have a look at the folder C:\Program Files\Apache Group\Apache2\Log; there should be the error.log file but it should not be growing anymore.
Note: The Apache installation path may differ if you choose a different path during installation.

Applies To

Apache 2.0.x