[
https://issues.apache.org/jira/browse/HDFS-3548?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13400067#comment-13400067
]
Eli Collins commented on HDFS-3548:
-----------------------------------
Looks good. I'd go one step further to prevent similar situations (we have
duplicate methods, see HDFS-3015, and only copy gets the fix) and (1) nuke the
bestNode method here and use the version from jspHelper, and then (2) move
copyBlock here to a util class and structure it similarly to
streamBlockInAscii (eg bestNode already handles the connect timeout so we don't
need to duplicate that logic in copyBlock).
Style nits:
- s/"corrupted file"/"corrupt file"
- "catch(Ex" needs a space
- Seems like "Fsck: copied the remains of the corrupted file" should be INFO
instead of WARN
> NamenodeFsck.copyBlock fails to create a Block Reader
> -----------------------------------------------------
>
> Key: HDFS-3548
> URL: https://issues.apache.org/jira/browse/HDFS-3548
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: name-node
> Affects Versions: 0.23.1, 2.0.0-alpha
> Reporter: Todd Lipcon
> Assignee: Colin Patrick McCabe
> Priority: Critical
> Attachments: HDFS-3548.001.patch
>
>
> NamenodeFsck.copyBlock creates a Socket using {{new Socket()}}, and thus that
> socket doesn't have an associated Channel. Then, it fails to create a
> BlockReader since RemoteBlockReader2 needs a socket channel.
> (thanks to Hiroshi Yokoi for reporting)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira