[
https://issues.apache.org/jira/browse/HADOOP-3571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12606897#action_12606897
]
Konstantin Shvachko commented on HADOOP-3571:
---------------------------------------------
This is the consequence of HADOOP-3503, which introduced a new methods
BlocksMap.remove(Block), which is only called during lease recovery.
The method removes block from the block map, and removes references to the
data-nodes containing the block,
but does not remove the block from the lists of blocks belonging to each if
this data-nodes.
This breaks the list, so that other entries of the list are still pointing to
the block, but once in the block
you do not have any pointers to other parts of the list. So when you modify the
list close to such broken chain or
scan the entire list like in block report processing you get one the exceptions
above.
> ArrayIndexOutOfBoundsException in BlocksMap$BlockInfo.setPrevious
> -----------------------------------------------------------------
>
> Key: HADOOP-3571
> URL: https://issues.apache.org/jira/browse/HADOOP-3571
> Project: Hadoop Core
> Issue Type: Bug
> Components: dfs
> Reporter: Tsz Wo (Nicholas), SZE
> Assignee: Konstantin Shvachko
> Priority: Blocker
> Fix For: 0.18.0
>
>
> 2008-06-16 17:31:13,565 INFO org.apache.hadoop.ipc.Server: IPC Server handler
> 3 on 52750, call commitBlockSynchronization(blk_-5603224380662485577_2034,
> 2034, 80499712, false, false, [Lorg.apache.hadoop.dfs.DatanodeID;@73bc22)
> from xx.xx.xx.xx:51581: error: java.io.IOException:
> java.lang.ArrayIndexOutOfBoundsException: -2
> java.io.IOException: java.lang.ArrayIndexOutOfBoundsException: -2
> at
> org.apache.hadoop.dfs.BlocksMap$BlockInfo.setPrevious(BlocksMap.java:94)
> at
> org.apache.hadoop.dfs.BlocksMap$BlockInfo.listInsert(BlocksMap.java:212)
> at
> org.apache.hadoop.dfs.DatanodeDescriptor.addBlock(DatanodeDescriptor.java:173)
> at
> org.apache.hadoop.dfs.FSNamesystem.commitBlockSynchronization(FSNamesystem.java:1734)
> at
> org.apache.hadoop.dfs.NameNode.commitBlockSynchronization(NameNode.java:385)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:452)
> at org.apache.hadoop.ipc.Server$Handler.run(Server.java:888)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.