[ 
https://issues.apache.org/jira/browse/HDFS-11379?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daryn Sharp updated HDFS-11379:
-------------------------------
    Attachment: HDFS-11379.branch-2.patch
                HDFS-11379.trunk.patch

Main issue is getFinalizedBlockRange takes an offset and length.  It will loop 
forever until it receives blocks that satisfy length, even if no locations were 
returned.

Simplest change is to abort when no locations are returned in the expected 
range.  Changed two duplicated code regions, sans whether to cache, to invoke a 
common method for fetching locations.

> DFSInputStream may infinite loop requesting block locations
> -----------------------------------------------------------
>
>                 Key: HDFS-11379
>                 URL: https://issues.apache.org/jira/browse/HDFS-11379
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs-client
>    Affects Versions: 2.7.0
>            Reporter: Daryn Sharp
>            Assignee: Daryn Sharp
>            Priority: Critical
>         Attachments: HDFS-11379.branch-2.patch, HDFS-11379.trunk.patch
>
>
> DFSInputStream creation caches file size and initial range of locations.  If 
> the file is truncated (or replaced) and the client attempts to read outside 
> the initial range, the client goes into a tight infinite looping requesting 
> locations for the nonexistent range.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to