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

      debraj92 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+.

      debraj92 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

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

            Dates

              Created:
              Updated:
              Resolved: