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..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,6 +407,7 @@ private OzoneManager(OzoneConfiguration conf) throws IOException, ScmInfo scmInfo = getScmInfo(configuration); if (!(scmInfo.getClusterId().equals(omStorage.getClusterID()) && scmInfo .getScmId().equals(omStorage.getScmId()))) { + logVersionMismatch(conf, scmInfo); throw new OMException("SCM version info mismatch.", ResultCodes.SCM_VERSION_MISMATCH_ERROR); } @@ -480,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