From 88744b8a0421ced25f511c4e078c2c736acfb448 Mon Sep 17 00:00:00 2001 From: langlaile1221 <35354527+langlaile1221@users.noreply.github.com> Date: Mon, 11 Oct 2021 16:11:31 +0800 Subject: [PATCH] HDFS-16241. Standby close reconstruction thread (#3493) Co-authored-by: zhanghuazong (cherry picked from commit 88d8c3d0c88bcec5acca30aadca36b7d65c4237c) (cherry picked from commit a35a6ec06bc9a95e1718938da9175a9a3511f4d1) --- .../hadoop/hdfs/server/blockmanagement/BlockManager.java | 2 +- .../apache/hadoop/hdfs/server/namenode/FSNamesystem.java | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java index 543278f929e..9952408e6bc 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java @@ -3562,7 +3562,7 @@ public void run() { /* * Stop the ongoing initialisation of reconstruction queues */ - private void stopReconstructionInitializer() { + public void stopReconstructionInitializer() { if (reconstructionQueuesInitializer != null) { reconstructionQueuesInitializer.interrupt(); try { diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java index 7a7d072ec43..1644d6fff46 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java @@ -1365,8 +1365,11 @@ void stopActiveServices() { LOG.info("Stopping services started for active state"); writeLock(); try { - if (blockManager != null && blockManager.getSPSManager() != null) { - blockManager.getSPSManager().stop(); + if (blockManager != null) { + blockManager.stopReconstructionInitializer(); + if (blockManager.getSPSManager() != null) { + blockManager.getSPSManager().stop(); + } } stopSecretManager(); leaseManager.stopMonitor();