Details
-
Bug
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
2.6.0
-
None
-
None
Description
In BlockPlacementPolicyDefault.java:isGoodTarget, the passed-in blockSize is used to determine if there is enough room for a new block on a data node. However, in two conditions the blockSize might not be proper for the purpose: (a) the passed in block size is just the size of the last block of a file, which might be very small (for e.g., called from BlockManager.ReplicationWork.chooseTargets). (b) A file which might be created with a smaller blocksize.
In these conditions, the calculated scheduledSize might be smaller than the actual value, which finally might lead to following failure of writing or replication.