[
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: [email protected]
For additional commands, e-mail: [email protected]