[ 
https://issues.apache.org/jira/browse/HDFS-7263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14181955#comment-14181955
 ] 

Tao Luo commented on HDFS-7263:
-------------------------------

The LocatedBlocks returned from getLocatedBlocks(..) has a blocksize of the 
current block,
 while the file length is the length at the time of the snapshot.  

Current tests use the pread(..) path which uses the file length and position, 
however readWithStrategy(..) incorrectly allows reads 
beyond the file length of the snapshotted file.

> Snapshot read of an appended file returns more bytes than the file length.
> --------------------------------------------------------------------------
>
>                 Key: HDFS-7263
>                 URL: https://issues.apache.org/jira/browse/HDFS-7263
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs-client
>    Affects Versions: 2.5.0
>            Reporter: Konstantin Shvachko
>            Assignee: Tao Luo
>         Attachments: HDFS-7263.patch, TestSnapshotRead.java
>
>
> The following sequence of steps will produce extra bytes, that should not be 
> visible, because they are not in the snapshot.
> * Create a file of size L, where {{L % blockSize != 0}}.
> * Create a snapshot
> * Append bytes to the file
> * Read file in the snapshot (not the current file)
> * You will see the bytes are read beoynd the original file size L



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to