This is an automated email from the ASF dual-hosted git repository.

adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 159fa91d1ac HDDS-14763. Reconciliation will incorrectly skip blocks 
with only metadata present (#9862)
159fa91d1ac is described below

commit 159fa91d1ac62a9ed7bedd22d7e513239273f1e2
Author: Ethan Rose <[email protected]>
AuthorDate: Wed Mar 4 13:26:20 2026 -0500

    HDDS-14763. Reconciliation will incorrectly skip blocks with only metadata 
present (#9862)
---
 .../hadoop/ozone/container/keyvalue/KeyValueHandler.java | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueHandler.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueHandler.java
index ef598f3c0cb..6f93bcef4fd 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueHandler.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/keyvalue/KeyValueHandler.java
@@ -1696,17 +1696,11 @@ private void 
reconcileContainerInternal(DNContainerOperationClient dnClient, Con
         for (ContainerProtos.BlockMerkleTree missingBlock : 
diffReport.getMissingBlocks()) {
           try {
             long localID = missingBlock.getBlockID();
-            BlockID blockID = new BlockID(containerID, localID);
-            if (getBlockManager().blockExists(container, blockID)) {
-              LOG.warn("Cannot reconcile block {} in container {} which was 
previously reported missing but is now " +
-                  "present. Our container merkle tree is stale.", localID, 
containerID);
-            } else {
-              long chunksInBlockRetrieved = 
reconcileChunksPerBlock(kvContainer, pipeline, dnClient, localID,
-                  missingBlock.getChunkMerkleTreeList(), updatedTreeWriter, 
chunkByteBuffer);
-              if (chunksInBlockRetrieved != 0) {
-                allBlocksUpdated.add(localID);
-                numMissingBlocksRepaired++;
-              }
+            long chunksInBlockRetrieved = reconcileChunksPerBlock(kvContainer, 
pipeline, dnClient, localID,
+                missingBlock.getChunkMerkleTreeList(), updatedTreeWriter, 
chunkByteBuffer);
+            if (chunksInBlockRetrieved >= 0) {
+              allBlocksUpdated.add(localID);
+              numMissingBlocksRepaired++;
             }
           } catch (IOException e) {
             LOG.error("Error while reconciling missing block for block {} in 
container {}", missingBlock.getBlockID(),


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to