[
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)