HDDS-310. VolumeSet shutdown hook fails on datanode restart. Contributed by Bharat Viswanadham.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/41da2050 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/41da2050 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/41da2050 Branch: refs/heads/YARN-7402 Commit: 41da2050bdec14709a86fa8a5cf7da82415fd989 Parents: 735b492 Author: Nanda kumar <na...@apache.org> Authored: Thu Aug 2 11:35:22 2018 +0530 Committer: Nanda kumar <na...@apache.org> Committed: Thu Aug 2 11:35:22 2018 +0530 ---------------------------------------------------------------------- .../ozone/container/common/volume/VolumeSet.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/41da2050/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeSet.java ---------------------------------------------------------------------- diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeSet.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeSet.java index 4a1487b..06f48fc 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeSet.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeSet.java @@ -167,7 +167,7 @@ public class VolumeSet { // Ensure volume threads are stopped and scm df is saved during shutdown. shutdownHook = () -> { - shutdown(); + saveVolumeSetUsed(); }; ShutdownHookManager.get().addShutdownHook(shutdownHook, SHUTDOWN_HOOK_PRIORITY); @@ -303,7 +303,11 @@ public class VolumeSet { return choosingPolicy.chooseVolume(getVolumesList(), containerSize); } - public void shutdown() { + /** + * This method, call shutdown on each volume to shutdown volume usage + * thread and write scmUsed on each volume. + */ + private void saveVolumeSetUsed() { for (HddsVolume hddsVolume : volumeMap.values()) { try { hddsVolume.shutdown(); @@ -312,7 +316,14 @@ public class VolumeSet { ex); } } + } + /** + * Shutdown's the volumeset, if saveVolumeSetUsed is false, call's + * {@link VolumeSet#saveVolumeSetUsed}. + */ + public void shutdown() { + saveVolumeSetUsed(); if (shutdownHook != null) { ShutdownHookManager.get().removeShutdownHook(shutdownHook); } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org