Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.5.0
-
None
-
Reviewed
Description
When an IBR for a UC block arrives, the NN updates the expected location's block and replica state only if it's on an unexpected storage for an expected DN. If it's for an expected storage, only the genstamp is updated. When the block is committed, and the expected locations are verified, only the genstamp is checked. The size is not checked but it wasn't updated in the expected locations anyway.
A faulty client may misreport the size when committing the block. The block is effectively corrupted. If the NN issues replications, the received IBR is considered corrupt, the NN invalidates the block, immediately issues another replication. The NN eventually realizes all the original replicas are corrupt after full BRs are received from the original DNs.
Attachments
Attachments
Issue Links
- is related to
-
HDFS-11732 Backport HDFS-8498 to branch-2.7: Blocks can be committed with wrong size
- Resolved
-
HDFS-9289 Make DataStreamer#block thread safe and verify genStamp in commitBlock
- Closed
-
HDFS-8344 NameNode doesn't recover lease for files with missing blocks
- Patch Available