HDFS-12796. SCM should not start if Cluster Version file does not exist. Contributed by Shashikant Banerjee.
This commit is contained in:
parent
740a06cdd7
commit
446e84357d
|
@ -226,9 +226,8 @@ public class StorageContainerManager extends ServiceRuntimeInfoImpl
|
|||
|
||||
StorageContainerManager.initMetrics();
|
||||
scmStorage = new SCMStorage(conf);
|
||||
String clusterId = scmStorage.getClusterID();
|
||||
if (clusterId == null) {
|
||||
throw new SCMException("clusterId not found",
|
||||
if (scmStorage.getState() != StorageState.INITIALIZED) {
|
||||
throw new SCMException("SCM not initialized.",
|
||||
ResultCodes.SCM_NOT_INITIALIZED);
|
||||
}
|
||||
scmNodeManager = new SCMNodeManager(conf, scmStorage.getClusterID());
|
||||
|
|
|
@ -34,6 +34,7 @@ import org.apache.hadoop.ozone.scm.StorageContainerManager;
|
|||
import org.apache.hadoop.ozone.scm.StorageContainerManager.StartupOption;
|
||||
import org.apache.hadoop.ozone.scm.block.DeletedBlockLog;
|
||||
import org.apache.hadoop.ozone.scm.block.SCMBlockDeletingService;
|
||||
import org.apache.hadoop.ozone.scm.exceptions.SCMException;
|
||||
import org.apache.hadoop.ozone.scm.node.NodeManager;
|
||||
import org.apache.hadoop.scm.XceiverClientManager;
|
||||
import org.apache.hadoop.scm.container.common.helpers.Pipeline;
|
||||
|
@ -396,4 +397,17 @@ public class TestStorageContainerManager {
|
|||
Assert.assertEquals(OzoneConsts.NodeType.SCM, scmStore.getNodeType());
|
||||
Assert.assertNotEquals("testClusterId", scmStore.getClusterID());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSCMInitializationFailure() throws IOException {
|
||||
OzoneConfiguration conf = new OzoneConfiguration();
|
||||
final String path =
|
||||
GenericTestUtils.getTempPath(UUID.randomUUID().toString());
|
||||
Path scmPath = Paths.get(path, "scm-meta");
|
||||
conf.set(OzoneConfigKeys.OZONE_METADATA_DIRS, scmPath.toString());
|
||||
conf.setBoolean(OzoneConfigKeys.OZONE_ENABLED, true);
|
||||
exception.expect(SCMException.class);
|
||||
exception.expectMessage("SCM not initialized.");
|
||||
StorageContainerManager.createSCM(null, conf);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue