Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Not A Problem
-
0.9.1
-
None
-
None
Description
I'm currently running local load tests between my (local) thrift client and local thrift server.
The test consists of a webpage that makes an RPC call to the thrift server using a thrift client and returns the information to the browser. With JMeter I'm seeing the performance of both processes under load.
At some point in the load I get a System.Net.Sockets.SocketException when creating a new client with the message "An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full...".
I'm using a TServerSocket and a TThreadPoolServer on the server and a new instance of TSocket per client request. All instances seem to be disposed properly.
The TSocket doesn't seem to be threadsafe. Am I supposed to create a TSocket connection pool in the client so I don't overwhelm the server with creating and destroying network sockets?
Shouldn't there be some connection pooling available in the server implementation?