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

Oneway calls should not return exceptions to clients

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 0.9.1, 0.9.2, 0.9.3
    • Fix Version/s: 0.10.0
    • Component/s: Java - Library
    • Labels:
      None

      Description

      We noticed the following happening over in ACCUMULO-4065.

      A client made a oneway call to a server which ultimately caused a TException to propagate up through to ProcessFunction. This caused a message to be sent back to the client with a TApplicationException wrapping the TException.

      The problem is that the client had already returned its connection to a pool because it was oneway (it had no means to know when the call finished – nor did it care). The next client that tried to send an RPC to the same server sent its message, then read the response off the wire, only to get the oneway call's exception Message, not the response for the call it made.

      Ultimately, this screwed up the connection (the next client was always reading the previous clients response).

      Given my understanding on the current implementation (mostly discerned from the docs, a bit from code), it's my belief that oneway calls can never safely return a message to clients.

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              elserj Josh Elser
              Reporter:
              elserj Josh Elser

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment