You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (JIRA)" <ji...@apache.org> on 2015/08/03 23:24:04 UTC
[jira] [Commented] (THRIFT-3289) Socket exhaustion in csharp
implementation
[ https://issues.apache.org/jira/browse/THRIFT-3289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14652541#comment-14652541 ]
Jens Geyer commented on THRIFT-3289:
------------------------------------
Not sure, but I remember seeing this behaviour when a large number of sockets are opened and closed very quickly. The sysinternals TCPView showed very clearly that the sockets are transitioning into (IIRC) a [TIMED_WAIT state for some time|https://support.microsoft.com/en-us/kb/137984]. I modified the application logic in a way that stopped opening and closing lots of of sockets in a short time frame, and that solved the issue for me.
If you have a better solution, well ... [this is open source|http://thrift.apache.org/docs/HowToContribute] :-)
> Socket exhaustion in csharp implementation
> ------------------------------------------
>
> Key: THRIFT-3289
> URL: https://issues.apache.org/jira/browse/THRIFT-3289
> Project: Thrift
> Issue Type: Bug
> Components: C# - Library
> Affects Versions: 0.9.1
> Reporter: Diogo Costa
> Priority: Critical
>
> 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?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)