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

IsConnResetTException() should include ECONNRESET

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • Impala 2.10.0, Impala 2.11.0, Impala 3.0, Impala 2.12.0
    • Impala 2.13.0
    • Distributed Exec
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: