[
https://issues.apache.org/jira/browse/DRILL-7035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rob Wu updated DRILL-7035:
--------------------------
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.
{code:java}
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 ---
{code}
was:
[~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.
> Drill C++ Client crashes on multiple SaslAuthenticatorImpl Destruction due to
> communication error
> --------------------------------------------------------------------------------------------------
>
> Key: DRILL-7035
> URL: https://issues.apache.org/jira/browse/DRILL-7035
> Project: Apache Drill
> Issue Type: Bug
> Components: Client - C++
> Affects Versions: 1.12.0
> Reporter: Rob Wu
> Priority: Major
>
> [~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.
>
> {code:java}
> 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 ---
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)