From 4c74b4bd7ae864c483f9a2e1ae501ab43cc36de4 Mon Sep 17 00:00:00 2001
From: shangshu-qian <92334720+shangshu-qian@users.noreply.github.com>
Date: Sun, 11 May 2025 15:06:16 -0400
Subject: [PATCH] HDFS-17780 retry logic in sendIBR may bypass throttling

---
 .../hdfs/server/datanode/IncrementalBlockReportManager.java  | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/IncrementalBlockReportManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/IncrementalBlockReportManager.java
index 3b093a7f59013..7adde61f9b96a 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/IncrementalBlockReportManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/IncrementalBlockReportManager.java
@@ -212,11 +212,10 @@ void sendIBRs(DatanodeProtocol namenode, DatanodeRegistration registration,
       namenode.blockReceivedAndDeleted(registration, bpid, reports);
       success = true;
     } finally {
-
+      lastIBR = startTime;
       if (success) {
         dnMetrics.addIncrementalBlockReport(monotonicNow() - startTime,
             nnRpcLatencySuffix);
-        lastIBR = startTime;
       } else {
         // If we didn't succeed in sending the report, put all of the
         // blocks back onto our queue, but only in the case where we
@@ -304,4 +303,4 @@ void clearIBRs() {
   int getPendingIBRSize() {
     return pendingIBRs.size();
   }
-}
\ No newline at end of file
+}