Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-3289

Socket exhaustion in csharp implementation

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Not A Problem
    • Affects Version/s: 0.9.1
    • Fix Version/s: None
    • Component/s: C# - Library
    • Labels:
      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?

        Attachments

          Activity

            People

            • Assignee:
              jking3 James E. King III
              Reporter:
              diogojc Diogo Costa
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: