Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.7.0
-
None
Description
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.
Attachments
Issue Links
- depends upon
-
DRILL-2245 Improve Drillbit resiliency
- Resolved
- is depended upon by
-
DRILL-2634 Profile UI: Cancelled queries are not moved to Completed Queries section
- Closed
- relates to
-
DRILL-2762 Fix situation where node failure hangs queries.
- Resolved