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

Reply via email to