wangbo edited a comment on issue #2075: Segment v2 stream load core dump(#2037)
URL: https://github.com/apache/incubator-doris/pull/2075#issuecomment-546769930
 
 
   > I don't know why the second problem will be fixed by this PR.
   
   For page produced by BitShuffleBuilder,ColumnWriter calls finish() to get 
Slice,that is calling BitShuffleBuilder.fastring->data(),but fastring  may 
return a  data array which not using new to create when not grow happens.
   This pr using BitShuffleBuilder's finish_and_release method to produce 
page,that is calling BitShuffleBuilder's fastring.release,this page can be 
deleted by Page's Destructor;
   
   > why create finish_and_release method?
   
   The situation for PageBuilder in ColumnWriter is different from other 
situations,
   Because all data produced by PageBuilder will be kept in 
ColumnWriter,ColumnWriter maintains the pages and delete at some time,it seems 
that calling PageBuilder.finish and then calling release() is ok;
   But calling PageBuilder.finish means calling 
PageBuilder.faststring.finish,this comes back to the problem that when 
faststring not group,ColumnWriter will get a slice'data which not using new to 
create,so we must calling fastring.release to get data in ColumnWriter'context;
   Calling PageBuilder.finish_and_release means calling fastring.release to get 
data

----------------------------------------------------------------
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:
us...@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to