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

Reply via email to