Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-6908

IsConnResetTException() should include ECONNRESET

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: Impala 2.10.0, Impala 2.11.0, Impala 3.0, Impala 2.12.0
    • Fix Version/s: Impala 2.13.0
    • Component/s: Distributed Exec
    • Labels:
    • Epic Color:
      ghx-label-5

      Description

      IsConnReset() aims to check if the given exception is due to a stale connection. Apparently, it's missing the case in which the error code is ECONNRESET.

      bool IsConnResetTException(const TTransportException& e) {
        // Strings taken from TTransport::readAll(). This happens iff TSocket::read() returns 0.
        // As readAll() is reading non-zero length payload, this can only mean recv() called
        // by read() returns 0. According to man page of recv(), this implies a stream socket
        // peer has performed an orderly shutdown.
        return (e.getType() == TTransportException::END_OF_FILE &&
                   strstr(e.what(), "No more data to read.") != nullptr) ||
               (e.getType() == TTransportException::INTERNAL_ERROR &&
                   strstr(e.what(), "SSL_read: Connection reset by peer") != nullptr);
      }
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                sailesh Sailesh Mukil
                Reporter:
                kwho Michael Ho
              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: