[ 
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.

Reply via email to