[ 
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:09 AM:
-----------------------------------------------------------------

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.



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 the cancellation request 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)

Reply via email to