Karatas, FERHAT
I would love to change the world, but they won't give me the source code!
No buffer space available Fix
29.08.2009 12:08:04 - Filed under : C# | Asp.net | Misc | SQL
Error : An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full xxxx.xxxx.xxxx:80

Solution 1 :

I think I've found a reason for it: My anti-virus scanner, NOD32 v2.51.12 x64, with enabled HTTP scanning. If the HTTP scanning on port 80,8080,3128 and "Auto Detect HTTP communication on other ports" is enabled, both versions will crash. After I disabled the IMON (Internet Monitor) and EMON (MS Outlook E-Mail Monitor) features in NOD32 everything seems to work fine.

Solution 2 :

Editting the registry is not for beginners, if you don't know what you're doing I suggest you don't try this, basically it's use at your own risk. Anytime you want to edit the registry it is a good idea to back it up first..

If you are using Windows 95/98/Me follow these steps:

First step is to launch the registry editor. To do this go to Start, Run and type regedit. In the left pane navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP once there, look for an entry called MaxConnections. If it exists highlight it by clicking it and then right click it and select modify. Increase the value (recommended value is to double the current value).

If the MaxConnections entry does not exist you must create it. To do this, right click in the right pane and choose new from the menu and select String Value. Give it the name MaxConnections. Then right click it and select modify and enter a value of 800.

Restart your computer, if all goes well then you fixed the problem, if not, revert the changes by restoring the registry. (You may have to reboot to safe mode to do this).

If you are running Windows NT/2000/XP follow these steps:
First step is to launch the registry editor. To do this go to Start, Run and type regedit. In the left pane navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters once there, you must create the entry TcpNumConnections. To do this, right click in the right pane and choose new from the menu and select DWORD Value. Give it the name TcpNumConnections. Then right click it and select modify and enter a value of 800.

Restart your computer, if all goes well then you fixed the problem, if not, revert the changes by restoring the registry. (You may have to reboot to safe mode to do this).

Consideration :

TIP 1 : I have seen NOD32 cause WSAENOBUFS (10055) on many systems. They seem to do something which lowers the resources available to networking applications.
TIP 2 : Problem is caused by a recent windows patch.  If you remove patch KB948609 the client side deserialization will except large datasets again.
TIP 3 : If an application performs many network connections simultaneously or within a short window of time, the application developer might need to increase this number and reduce the TcpTimedWaitDelay value to avoid receiving a WSAENOBUFS (10055) error: "An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full." (http://msdn.microsoft.com/en-us/library/ms819739.aspx)


Keywords : WSAENOBUFS, 10055
with 0 comments

What do you think ?
Security Code 7042
Check S. Code
Name  
Email  
Home Page  
Comments