xichen01 commented on code in PR #6113:
URL: https://github.com/apache/ozone/pull/6113#discussion_r1469468524
##########
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/HddsVolume.java:
##########
@@ -343,35 +357,41 @@ public void loadDbStore(boolean readOnly) throws
IOException {
File clusterIdDir = new File(dbVolume == null ?
getStorageDir() : dbVolume.getStorageDir(),
getClusterID());
- if (!clusterIdDir.exists()) {
- throw new IOException("Working dir " + clusterIdDir.getAbsolutePath() +
- " not created for HddsVolume: " + getStorageDir().getAbsolutePath());
- }
+ try {
+ if (!clusterIdDir.exists()) {
+ throw new IOException("Working dir " + clusterIdDir.getAbsolutePath() +
+ " not created for HddsVolume: " +
getStorageDir().getAbsolutePath());
+ }
- File storageIdDir = new File(clusterIdDir, getStorageID());
- if (!storageIdDir.exists()) {
- throw new IOException("Db parent dir " + storageIdDir.getAbsolutePath() +
- " not found for HddsVolume: " + getStorageDir().getAbsolutePath());
- }
+ File storageIdDir = new File(clusterIdDir, getStorageID());
+ if (!storageIdDir.exists()) {
+ throw new IOException("Db parent dir " +
storageIdDir.getAbsolutePath() +
+ " not found for HddsVolume: " + getStorageDir().getAbsolutePath());
+ }
- File containerDBFile = new File(storageIdDir, CONTAINER_DB_NAME);
- if (!containerDBFile.exists()) {
- throw new IOException("Db dir " + storageIdDir.getAbsolutePath() +
- " not found for HddsVolume: " + getStorageDir().getAbsolutePath());
- }
+ File containerDBFile = new File(storageIdDir, CONTAINER_DB_NAME);
+ if (!containerDBFile.exists()) {
+ throw new IOException("Db dir " + storageIdDir.getAbsolutePath() +
+ " not found for HddsVolume: " + getStorageDir().getAbsolutePath());
+ }
- String containerDBPath = containerDBFile.getAbsolutePath();
- try {
- initPerDiskDBStore(containerDBPath, getConf(), readOnly);
+ String containerDBPath = containerDBFile.getAbsolutePath();
+ try {
+ initPerDiskDBStore(containerDBPath, getConf(), readOnly);
+ } catch (IOException e) {
+ throw new IOException("Can't init db instance under path "
+ + containerDBPath + " for volume " + getStorageID(), e);
+ }
+
+ dbParentDir = storageIdDir;
+ dbLoaded.set(true);
+ dbLoadFailure.set(false);
+ LOG.info("SchemaV3 db is loaded at {} for volume {}", containerDBPath,
+ getStorageID());
} catch (IOException e) {
- throw new IOException("Can't init db instance under path "
- + containerDBPath + " for volume " + getStorageID(), e);
+ dbLoadFailure.set(true);
Review Comment:
```
ERROR org.apache.hadoop.ozone.container.ozoneimpl.OzoneContainer: Load db
store for HddsVolume /xxx/xxx/xxx/ozone/hdds failed
java.io.IOException: Can't init db instance under path
/xxx/xxxx/xxx/ozone/hdds/CID-xxx/DS-xxx/container.db for volume DS-xxx
at
org.apache.hadoop.ozone.container.common.volume.HddsVolume.loadDbStore(HddsVolume.java:235)
at
org.apache.hadoop.ozone.container.common.utils.HddsVolumeUtil.loadAllHddsVolumeDbStore(HddsVolumeUtil.java:99)
at
org.apache.hadoop.ozone.container.ozoneimpl.OzoneContainer.<init>(OzoneContainer.java:146)
at
org.apache.hadoop.ozone.container.common.statemachine.DatanodeStateMachine.<init>(DatanodeStateMachine.java:153)
at
org.apache.hadoop.ozone.HddsDatanodeService.start(HddsDatanodeService.java:295)
at
org.apache.hadoop.ozone.HddsDatanodeService.start(HddsDatanodeService.java:227)
at
org.apache.hadoop.ozone.HddsDatanodeService.call(HddsDatanodeService.java:195)
at
org.apache.hadoop.ozone.HddsDatanodeService.call(HddsDatanodeService.java:104)
at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at
picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
at
picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2172)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2550)
at picocli.CommandLine.parseWithHandler(CommandLine.java:2485)
at org.apache.hadoop.hdds.cli.GenericCli.execute(GenericCli.java:96)
at org.apache.hadoop.hdds.cli.GenericCli.run(GenericCli.java:87)
at
org.apache.hadoop.ozone.HddsDatanodeService.main(HddsDatanodeService.java:178)
Caused by: java.io.IOException: Failed init RocksDB, db path :
/xxx/xxx/xxx/ozone/hdds/CID-xxx/DS-xxx/container.db, exception
:org.rocksdb.RocksDBException CURRENT file does not end with newline
at org.apache.hadoop.hdds.utils.db.RDBStore.<init>(RDBStore.java:130)
at
org.apache.hadoop.hdds.utils.db.DBStoreBuilder.build(DBStoreBuilder.java:191)
at
org.apache.hadoop.ozone.container.metadata.AbstractDatanodeStore.start(AbstractDatanodeStore.java:146)
at
org.apache.hadoop.ozone.container.metadata.AbstractDatanodeStore.<init>(AbstractDatanodeStore.java:99)
at
org.apache.hadoop.ozone.container.metadata.DatanodeStoreSchemaThreeImpl.<init>(DatanodeStoreSchemaThreeImpl.java:54)
at
org.apache.hadoop.ozone.container.keyvalue.helpers.BlockUtils.getUncachedDatanodeStore(BlockUtils.java:84)
at
org.apache.hadoop.ozone.container.common.utils.HddsVolumeUtil.initPerDiskDBStore(HddsVolumeUtil.java:79)
at
org.apache.hadoop.ozone.container.common.volume.HddsVolume.loadDbStore(HddsVolume.java:232)
... 18 more
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]