I'm investigating some issues with winsock 10055 errors on a chain of custom applications (some of which we control, some not) and was hoping to get some advice on techniques to troubleshoot the problem.
No buffer space available. An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.
From research, non-paged pool and ports seem to be the only resources which can cause this error. Is there another resource which might cause 10055 errors?
Currently, we have perfmon counters setup on the applications and non-paged pool usage looks low in most circumstances. Open TCP connections looks low and I am unaware of another way to monitor ports.
Since it only happens in production, we are unable to use more invasive counters. Though it would still be interesting to hear other solutions. I'm sure other people could use the information.
Is there some other tool or procedure you would recommend to diagnose which application is causing the issue?
The platform is windows server 2003 x86 with the /3G switch. For reference, x86 generally has 256mb of NPP storage, /3G lowers it to 128mb. In general, you'd want to avoid this configuration for avoiding NPP problems. (reference)
We have source to one application. I have written pretty elaborate testing harnesses trying to reproduce the behavior to no avail.
As mentioned, the problem only happens in production. As such, packet monitoring has been avoided. We currently have performance counters setup that monitors NPP, threads, network traffic, etc. Since perfmon's interval is 1sec, you could have microbursts that come and go within that window. There is somewhat subjective evidence that this isn't the problem however.
The basic situation is that the other side of the connection says that it has closed the connection due to errors with 10055 as the code. NPP (and performance in general) looks stable prior to disconnects, which points to some other resource being the cause.
I'd also reiterate that the original questions pertain to diagnosis, not solutions. I still don't have a clear answer on what causes 10055 errors. Checking drivers and hardware and reinstalling operating systems is great, but it sidesteps the original question.