[ https://issues.apache.org/jira/browse/HBASE-18055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16011824#comment-16011824 ]
Duo Zhang commented on HBASE-18055: ----------------------------------- Pardon me, I do not understand what is going on here. You mean that the newly created scanner will reference to a block whose ref count is 0 so we may get incorrect result? > HBASE-17917 closes the scanners while a scan is in progess for switching over > to stream reads > --------------------------------------------------------------------------------------------- > > Key: HBASE-18055 > URL: https://issues.apache.org/jira/browse/HBASE-18055 > Project: HBase > Issue Type: Bug > Components: regionserver, Scanners > Affects Versions: 2.0.0 > Reporter: ramkrishna.s.vasudevan > Assignee: ramkrishna.s.vasudevan > Fix For: 2.0.0 > > > In HBASE-17917 tries to switch from pread to stream read when a specific size > of bytes are read. So in order to switch over, it closes the existing > scanners and creates a new scanners with pread=false. > When we close the exisitng scanners - if the blocks are served from offheap > cache we will decrement the ref count on those blocks and if it becomes zero > we make the block ready for eviction. Then there is a chance that the result > could be corrupted if new blocks occupy the cache. So the expectation was > that till the RPC call completes the response we will hold on to the blocks > that are referred by the scan. (except the last one). So trying to switch > over to stream read will break this expectation and hence > TestBlockEvictionfromclient fails. -- This message was sent by Atlassian JIRA (v6.3.15#6346)