[
https://issues.apache.org/jira/browse/HDFS-17929?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yue Wang updated HDFS-17929:
----------------------------
Description:
DFSStripedInputStream#createBlockReader handles reader creation failures by
re-fetching the block location, because the striped internal block may have
moved. However, after re-fetching it unconditionally calls
addToLocalDeadNodes().
There is also a related retry issue in DFSStripedInputStream#readWithStrategy.
The method retries after an IOException, but the next blockSeekTo() can still
use cached LocatedBlocks. Without refreshing open file information before
retrying, the retry may reuse stale block locations and hit the same
moved-block condition again.
> Revisit retrying mechanism in DFSStripedInputStream
> ---------------------------------------------------
>
> Key: HDFS-17929
> URL: https://issues.apache.org/jira/browse/HDFS-17929
> Project: Hadoop HDFS
> Issue Type: Improvement
> Components: hdfs
> Affects Versions: 3.4.3
> Reporter: Yue Wang
> Assignee: Yue Wang
> Priority: Major
>
> DFSStripedInputStream#createBlockReader handles reader creation failures by
> re-fetching the block location, because the striped internal block may have
> moved. However, after re-fetching it unconditionally calls
> addToLocalDeadNodes().
> There is also a related retry issue in
> DFSStripedInputStream#readWithStrategy. The method retries after an
> IOException, but the next blockSeekTo() can still use cached LocatedBlocks.
> Without refreshing open file information before retrying, the retry may reuse
> stale block locations and hit the same moved-block condition again.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]