Github user sohami commented on a diff in the pull request: https://github.com/apache/drill/pull/993#discussion_r146112692 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/WebUserConnection.java --- @@ -124,6 +124,13 @@ public void sendData(RpcOutcomeListener<Ack> listener, QueryWritableBatch result } } + /** + * Returns a DefaultChannelPromise which doesn't have reference to any actual channel but has an EventExecutor + * associated with it. In this case we use EventExecutor out of BitServer EventLoopGroup. Since there is no actual + * connection established using this class, hence the close event will never be fired by underlying layer and close + * future is set only when the WebSessionResources are closed. --- End diff -- Based on previous conversation the assumption was unsecure path also maintains cookie or session. On looking more this proved to be false and we don't maintain any session for unsecure case. This means that the requests submitted without authentication are stateless and once the connection is broken by closing the browser session then the query will still continue running until explicitly cancelled from profile page. I didn't found any way in Jetty to get notification about connection close event. And looks like that won't be much helpful right now since we send the response back only after the query is completed and we have entire result. I have opened another JIRA [DRILL-5897](https://issues.apache.org/jira/browse/DRILL-5897) to see if we can improve the way we send result back to client or make unsecure case to also use session concept such that we can cancel the in-flight queries based on when session is invalidated.
---