[ https://issues.apache.org/jira/browse/DRILL-2370?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14355662#comment-14355662 ]
Chris Westin commented on DRILL-2370: ------------------------------------- DRILL-2245 fixes a number of issues with cancellation, so this should be revisited after that goes in. > Missing cancellation acknowledgements leave orphaned cancelled queries around > ----------------------------------------------------------------------------- > > Key: DRILL-2370 > URL: https://issues.apache.org/jira/browse/DRILL-2370 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Flow > Affects Versions: 0.7.0 > Reporter: Chris Westin > Assignee: Chris Westin > > When a query is cancelled (say by Foreman.cancel()), Foreman moves to the > CANCELLED state, which indicates that cancellation is in progress. > Cancellation requests are sent to remote drill fragments. These should be > replied to via QueryManager.statusUpdate() (inherited from > FragmentStatusListener), which in turn updates Foreman. However, if any of > the cancellation requests are not acknowledged (due to drillbit failure, RPC > timeout, etc), then the being-cancelled query will stay that way > indefinitely. We need to have a way to find such queries and force them to be > cleaned up. This may require substituting stub listeners for some of the > objects involved in case cancellation acknowledgements still arrive even > later still -- these need to be safely invokable by the RPC layer even though > the query they referred to is gone. -- This message was sent by Atlassian JIRA (v6.3.4#6332)