From e9cc92418a73fbe9aeb8310f43e87a7d6cfc8a0f Mon Sep 17 00:00:00 2001 From: maobaolong <307499405@qq.com> Date: Thu, 30 Jul 2020 23:52:34 +0800 Subject: [PATCH 1/2] HDDS-4048. Show more information while SCM version info mismatch --- .../java/org/apache/hadoop/ozone/common/Storage.java | 2 +- .../org/apache/hadoop/ozone/om/OzoneManager.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/Storage.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/Storage.java index 25f8e8630035..d5e1348027a0 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/Storage.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/common/Storage.java @@ -168,7 +168,7 @@ public File getCurrentDir() { * * @return the version file path */ - private File getVersionFile() { + public File getVersionFile() { return new File(getCurrentDir(), STORAGE_FILE_VERSION); } diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java index 3aa6b03bc38b..6de97dd289d9 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java @@ -407,6 +407,18 @@ private OzoneManager(OzoneConfiguration conf) throws IOException, ScmInfo scmInfo = getScmInfo(configuration); if (!(scmInfo.getClusterId().equals(omStorage.getClusterID()) && scmInfo .getScmId().equals(omStorage.getScmId()))) { + InetSocketAddress scmBlockAddress = + getScmAddressForBlockClients(conf); + if (!scmInfo.getClusterId().equals(omStorage.getClusterID())) { + LOG.error("clusterId from {} is {}, but is {} in {}", + scmBlockAddress, scmInfo.getClusterId(), + omStorage.getClusterID(), omStorage.getVersionFile()); + } + if (!scmInfo.getScmId().equals(omStorage.getScmId())) { + LOG.error("scmId from {} is {}, but is {} in {}", + scmBlockAddress, scmInfo.getScmId(), + omStorage.getScmId(), omStorage.getVersionFile()); + } throw new OMException("SCM version info mismatch.", ResultCodes.SCM_VERSION_MISMATCH_ERROR); } From 1850baa86ffd8332806e848e331745c1a5bc3655 Mon Sep 17 00:00:00 2001 From: maobaolong <307499405@qq.com> Date: Fri, 31 Jul 2020 07:44:21 +0800 Subject: [PATCH 2/2] fix style --- .../apache/hadoop/ozone/om/OzoneManager.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java index 6de97dd289d9..597b1ae7b411 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java @@ -407,18 +407,7 @@ private OzoneManager(OzoneConfiguration conf) throws IOException, ScmInfo scmInfo = getScmInfo(configuration); if (!(scmInfo.getClusterId().equals(omStorage.getClusterID()) && scmInfo .getScmId().equals(omStorage.getScmId()))) { - InetSocketAddress scmBlockAddress = - getScmAddressForBlockClients(conf); - if (!scmInfo.getClusterId().equals(omStorage.getClusterID())) { - LOG.error("clusterId from {} is {}, but is {} in {}", - scmBlockAddress, scmInfo.getClusterId(), - omStorage.getClusterID(), omStorage.getVersionFile()); - } - if (!scmInfo.getScmId().equals(omStorage.getScmId())) { - LOG.error("scmId from {} is {}, but is {} in {}", - scmBlockAddress, scmInfo.getScmId(), - omStorage.getScmId(), omStorage.getVersionFile()); - } + logVersionMismatch(conf, scmInfo); throw new OMException("SCM version info mismatch.", ResultCodes.SCM_VERSION_MISMATCH_ERROR); } @@ -492,6 +481,21 @@ private OzoneManager(OzoneConfiguration conf) throws IOException, omState = State.INITIALIZED; } + private void logVersionMismatch(OzoneConfiguration conf, ScmInfo scmInfo) { + InetSocketAddress scmBlockAddress = + getScmAddressForBlockClients(conf); + if (!scmInfo.getClusterId().equals(omStorage.getClusterID())) { + LOG.error("clusterId from {} is {}, but is {} in {}", + scmBlockAddress, scmInfo.getClusterId(), + omStorage.getClusterID(), omStorage.getVersionFile()); + } + if (!scmInfo.getScmId().equals(omStorage.getScmId())) { + LOG.error("scmId from {} is {}, but is {} in {}", + scmBlockAddress, scmInfo.getScmId(), + omStorage.getScmId(), omStorage.getVersionFile()); + } + } + /** * Instantiate services which are dependent on the OM DB state. * When OM state is reloaded, these services are re-initialized with the