drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sudheesh Katkam (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (DRILL-3167) When a query fails, Foreman should wait for all fragments to finish cleaning up before sending a FAILED state to the client
Date Thu, 02 Jul 2015 00:23:04 GMT

    [ https://issues.apache.org/jira/browse/DRILL-3167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14611217#comment-14611217
] 

Sudheesh Katkam edited comment on DRILL-3167 at 7/2/15 12:22 AM:
-----------------------------------------------------------------

I like your suggestion: we should update FragmentData for all those fragments with a FAILED
state, and also add an appropriate error message to the corresponding MinorFragmentProfiles.

Correction for "this way even though we may send a cancellation request to that fragment,
we shouldn't get an exception". If we update the state to FAILED in QueryManager.DrillbitStatusListener
for all the fragments on the dead drillbits, the QueryManager *does not* send cancellation
requests to those fragments. Notice that QueryManager ignores fragments that already FAILED
in cancelExecutingFragments.



was (Author: sudheeshkatkam):
I like your suggestion. 

Correction for "this way even though we may send a cancellation request to that fragment,
we shouldn't get an exception". If we update the state to FAILED in QueryManager.DrillbitStatusListener
for all the fragments on the dead drillbits, the QueryManager *does not* send cancellation
requests to those fragments. Notice that QueryManager ignores fragments that already FAILED
in cancelExecutingFragments.


> When a query fails, Foreman should wait for all fragments to finish cleaning up before
sending a FAILED state to the client
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DRILL-3167
>                 URL: https://issues.apache.org/jira/browse/DRILL-3167
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Deneche A. Hakim
>            Assignee: Deneche A. Hakim
>             Fix For: 1.2.0
>
>         Attachments: DRILL-3167.1.patch.txt, DRILL-3267.2.patch.txt, DRILL-3267.3.patch.txt,
DRILL-3267.4.patch.txt
>
>
> TestDrillbitResilience.foreman_runTryEnd() exposes this problem intermittently
> The query fails and the Foreman reports the failure to the client which removes the results
listener associated to the failed query. 
> Sometimes, a data batch reaches the client after the FAILED state already arrived, the
client doesn't handle this properly and the corresponding buffer is never released.
> Making the Foreman wait for all fragments to finish before sending the final state should
help avoid such scenarios.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message