[
https://issues.apache.org/jira/browse/HDFS-5257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vinay updated HDFS-5257:
------------------------
Attachment: HDFS-5257.patch
Hi Uma,
I tried address your comment to check the locations of the block after restart
and before addBlock() call, but there was no way to get the locations unless we
go completely internal.
I tried {{getBlockLocations}}, but since the newly added block size is 0 it was
not including that block in {{LocatedBlocks}}.
Since your concern was about the understanding of the testcase, I have added a
javadoc which tells about the issue.
> addBlock() retry should return LocatedBlock with locations else client will
> get AIOBE
> -------------------------------------------------------------------------------------
>
> Key: HDFS-5257
> URL: https://issues.apache.org/jira/browse/HDFS-5257
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: hdfs-client, namenode
> Affects Versions: 2.1.1-beta
> Reporter: Vinay
> Assignee: Vinay
> Priority: Critical
> Attachments: HDFS-5257.patch, HDFS-5257.patch
>
>
> {{addBlock()}} call retry should return the LocatedBlock with locations if
> the block was created in previous call and failover/restart of namenode
> happened.
> otherwise client will get {{ArrayIndexOutOfBoundsException}} while creating
> the block and write will fail.
> {noformat}java.lang.ArrayIndexOutOfBoundsException: 0
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.createBlockOutputStream(DFSOutputStream.java:1118)
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1078)
> at
> org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:511){noformat}
--
This message was sent by Atlassian JIRA
(v6.1#6144)