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

Reply via email to