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


   It is my guess:
   We met some errors in NodeChannel, make `_cancelled == true`.
   And `NodeChannel's _cur_batch or _pending_batches` have some bytes.
   Although some NodeChannels is cancelled internally, it isn't intolerable. 
OlapTableSink will use `NodeChannel::mark_close()`.
   But I write this
   
https://github.com/apache/incubator-doris/blob/7591527977ea8b4184e45581007cc805c461b451/be/src/exec/tablet_sink.cpp#L218-L222
   So when `cancelled internally` NodeChannels is under destruction, we will 
meet `not empty` RowBatch. 
   
   But at that time, RuntimeState::_instance_mem_tracker has already deleted. 
   
   (RowBatch's mem_tracker = OlapTableSink::_mem_tracker. 
RuntimeState::_instance_mem_tracker is OlapTableSink::_mem_tracker's parent)
   
   It's my fault. I used to treat OlapTableSink::_mem_tracker & _channels as 
internal members of OlapTableSink.


----------------------------------------------------------------
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