You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2021/05/14 03:33:27 UTC
[iotdb] 01/01: [To rel/0.12] Fix removing tmp folders logic in
upgrade tool
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch upgrade_bug3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 17f66d3a7ca84e3e9a00dc4e68d3d510a988908f
Author: HTHou <hh...@outlook.com>
AuthorDate: Fri May 14 11:32:19 2021 +0800
[To rel/0.12] Fix removing tmp folders logic in upgrade tool
---
.../iotdb/db/engine/upgrade/UpgradeTask.java | 40 ++++++++++++++++++++++
.../org/apache/iotdb/db/utils/UpgradeUtils.java | 10 ------
2 files changed, 40 insertions(+), 10 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeTask.java b/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeTask.java
index a2e8357..3d4aa76 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeTask.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.engine.upgrade;
import org.apache.iotdb.db.concurrent.WrappedRunnable;
+import org.apache.iotdb.db.conf.directories.DirectoryManager;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
import org.apache.iotdb.db.service.UpgradeSevice;
import org.apache.iotdb.db.tools.upgrade.TsFileOnlineUpgradeTool;
@@ -32,6 +33,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
@@ -72,6 +74,9 @@ public class UpgradeTask extends WrappedRunnable {
oldTsfilePath,
UpgradeSevice.getCntUpgradeFileNum());
if (UpgradeSevice.getCntUpgradeFileNum() == 0) {
+ logger.info("Start delete empty tmp folders");
+ clearTmpFolders(DirectoryManager.getInstance().getAllSequenceFileFolders());
+ clearTmpFolders(DirectoryManager.getInstance().getAllUnSequenceFileFolders());
UpgradeSevice.getINSTANCE().stop();
logger.info("All files upgraded successfully! ");
}
@@ -126,4 +131,39 @@ public class UpgradeTask extends WrappedRunnable {
}
return upgradedResources;
}
+
+ private void clearTmpFolders(List<String> folders) {
+ for (String baseDir : folders) {
+ File fileFolder = fsFactory.getFile(baseDir);
+ if (!fileFolder.isDirectory()) {
+ continue;
+ }
+ for (File storageGroup : fileFolder.listFiles()) {
+ if (!storageGroup.isDirectory()) {
+ continue;
+ }
+ File virtualStorageGroupDir = fsFactory.getFile(storageGroup, "0");
+ File upgradeDir = fsFactory.getFile(virtualStorageGroupDir, "upgrade");
+
+ File[] tmpPartitionDirList = upgradeDir.listFiles();
+ for (File tmpPartitionDir : tmpPartitionDirList) {
+ if (tmpPartitionDir.isDirectory()) {
+ try {
+ Files.delete(tmpPartitionDir.toPath());
+ } catch (IOException e) {
+ logger.error("Delete tmpPartitionDir {} failed", tmpPartitionDir);
+ }
+ }
+ }
+ // delete upgrade folder when it is empty
+ if (upgradeDir.isDirectory()) {
+ try {
+ Files.delete(upgradeDir.toPath());
+ } catch (IOException e) {
+ logger.error("Delete tmpUpgradeDir {} failed", upgradeDir);
+ }
+ }
+ }
+ }
+ }
}
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/UpgradeUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/UpgradeUtils.java
index 87dd910..f8e2b82 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/UpgradeUtils.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/UpgradeUtils.java
@@ -122,16 +122,6 @@ public class UpgradeUtils {
upgradedResource.serialize();
// delete generated temp resource file
Files.delete(tempResourceFile.toPath());
- // delete tmp partition folder when it is empty
- File tmpPartitionDir = upgradedFile.getParentFile();
- if (tmpPartitionDir.isDirectory() && tmpPartitionDir.listFiles().length == 0) {
- Files.delete(tmpPartitionDir.toPath());
- }
- // delete upgrade folder when it is empty
- File upgradeDir = tmpPartitionDir.getParentFile();
- if (upgradeDir.isDirectory() && upgradeDir.listFiles().length == 0) {
- Files.delete(upgradeDir.toPath());
- }
}
}