Henry Robinson has posted comments on this change. Change subject: IMPALA-2987: Distinguish between already-closed and never-seen data stream receivers ......................................................................
Patch Set 5: (1 comment) http://gerrit.cloudera.org:8080/#/c/2305/5//COMMIT_MSG Commit Message: Line 34: already_unregistered=false, and cancel). > Will you be doing a survey of Close() calls to verify that? Yes, I just looked. The only operators that Close() early are blocking ones: PAGG, Top-N and Sort. The streaming ones all ensure that their input is fully consumed, or if they've reached their limit they don't call Close(). I think there's one outstanding case: a non-blocking operator with a limit returns N rows, and then sets *eos to signal to the upstream (and eventually the coordinator) that the fragment is done. At that point FragmentExecState::Open() can call PlanFragmentExecutor::Close(), which will then recursively close the ExecNode tree. All of the above happens in one fragment. The sender could conceivably not have heard about the closure of the receiver - the query could still be going, if this all is inside a child of a unionnode. I think this leads us to the possibility of the race we're worried about: the sender could eventually cancel the rest of the ongoing query. -- To view, visit http://gerrit.cloudera.org:8080/2305 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib1734992c7199b9dd4b03afca5372022051b6fbd Gerrit-PatchSet: 5 Gerrit-Project: Impala Gerrit-Branch: cdh5-2.5.0_5.7.0 Gerrit-Owner: Henry Robinson <[email protected]> Gerrit-Reviewer: Dan Hecht <[email protected]> Gerrit-Reviewer: Henry Robinson <[email protected]> Gerrit-Reviewer: Sailesh Mukil <[email protected]> Gerrit-Reviewer: Skye Wanderman-Milne <[email protected]> Gerrit-Reviewer: Tim Armstrong <[email protected]> Gerrit-HasComments: Yes
