Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-7035

Drill C++ Client crashes on multiple SaslAuthenticatorImpl Destruction due to communication error

    XMLWordPrintableJSON

    Details

      Description

      Debraj Ray found that when under some circumstance the SaslAuthenticatorImpl's sasl_dispose() function will crash out at destruction. The incident seems to be random and only when certain authentication and encryption combinations are used during connection.

      After digging a little deeper, I found that when BOOST communication error occurs, the shutdownSocket (eventually triggering sasl_dispose()) could be called from various threads resulting in a race condition of freeing the handle. This can be reproduced with the querysubmitter. This is reproducible since 1.12.0+.

      Debraj Ray will be adding a patch to resolve this incident.

       

      2019-Feb-11 10:44:01 : TRACE : 2d74 : DrillClientImpl::handleRead: Handle Read from buffer 0000000004E1D850
      2019-Feb-11 10:44:01 : TRACE : 2d74 : DrillClientImpl::handleRead: Cancel deadline timer.
      2019-Feb-11 10:44:01 : TRACE : 2d74 : DrillClientImpl::handleRead: ERR_QRY_COMMERR. Boost Communication Error: End of file
      2019-Feb-11 10:44:31 : TRACE : 3df8 : Disposing 1: +++ ENTER +++ 
      2019-Feb-11 10:44:31 : TRACE : 2d74 : Disposing 2: +++ ENTER +++ 
      2019-Feb-11 10:44:31 : TRACE : 2d74 : Disposing 2: --- EXIT ---
      2019-Feb-11 10:44:31 : TRACE : 2d74 : Socket shutdown
      2019-Feb-11 10:44:31 : TRACE : 3df8 : Disposing 1: --- EXIT ---
      

        Attachments

          Activity

            People

            • Assignee:
              debraj92 Debraj Ray
              Reporter:
              robertw Rob Wu
              Reviewer:
              Sorabh Hamirwasia
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: