Github user ilooner commented on a diff in the pull request:
https://github.com/apache/drill/pull/1105#discussion_r173367462
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java
---
@@ -488,47 +527,66 @@ void receiverFinished(FragmentHandle handle) {
sendEvent(new FragmentEvent(EventType.RECEIVER_FINISHED, handle));
}
+ /**
+ * Tell the {@link FragmentEventProcessor} not to process anymore
events. This keeps stray cancellation requests
+ * from being processed after the root has finished running and
interrupts in the root thread have been cleared.
+ */
+ public synchronized void terminate() {
+ terminate.set(true);
+ }
+
@Override
protected void processEvent(FragmentEvent event) {
+ if (terminate.get()) {
--- End diff --
Thanks for catching. Fixed.
---