vagetablechicken commented on issue #3416:
URL: 
https://github.com/apache/incubator-doris/issues/3416#issuecomment-626102191


   ### Step 1
   One FragmentExecState obj called exec_state.
   After exec_state inited and prepared, we try to put it in threadpool to 
execute.
   If threadpool is full, it should be aborted. So it never execute.
   
   exec_state's member _executor(PlanFragmentExecutor) is just prepared, skip 
open, and do close in `~PlanFragmentExecutor()`.
   
   Thus the executor's member nodes( _plan-plan node, _sink-sink node) are 
prepared, then closed.
   And the sink node close() will consider about the executor's status.
   
   So the sink node close() has two situation:
   1. close with ok status: means plan finished.
   1. close with error status: means cancel, may send cancel rpc to other BEs.
   
   We should add the third situation:
   close with abort status: means just close, clean the prepared resource, 
don't need to cancel anything.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to