Description
The call to removeStorageInfo is wrong because the block is still in the DatanodeStorage's list of blocks and the callee does not expect it to be.
} else { // The block is on the DN but belongs to a different storage. // Update our state. removeStorage(getStorageInfo(idx)); added = false; // Just updating storage. Return false. }
It is a very unlikely code path to hit since storage updates usually occur via incremental block reports.
Attachments
Attachments
Issue Links
- duplicates
-
HDFS-9334 NameNode crash caused by ArrayIndexOutOfBoundsException
- Resolved
- is duplicated by
-
HDFS-6805 NPE is thrown at Namenode , for every block report sent from DN
- Resolved
- is related to
-
HDFS-9334 NameNode crash caused by ArrayIndexOutOfBoundsException
- Resolved
-
HDFS-7960 The full block report should prune zombie storages even if they're not empty
- Closed
- relates to
-
HDFS-8380 Always call addStoredBlock on blocks which have been shifted from one storage to another
- Resolved