[ https://issues.apache.org/jira/browse/HBASE-18055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gavin updated HBASE-18055: -------------------------- Comment: was deleted (was: A comment with security level 'jira-users' was removed.) > Releasing L2 cache HFileBlocks before shipped() when switching from pread to > stream causes result corruption > ------------------------------------------------------------------------------------------------------------ > > 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: Duo Zhang > Priority: Major > Fix For: 2.0.0 > > Attachments: HBASE-18055.patch > > > 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 (v7.6.3#76005)