diff --git a/common/src/main/java/org/apache/rocketmq/common/UtilAll.java b/common/src/main/java/org/apache/rocketmq/common/UtilAll.java index 457deb8dba8dcf347e1650aa0a11c359458eb56d..9971f334342c696bcd2c20601fcd9524d6a90e8d 100644 --- a/common/src/main/java/org/apache/rocketmq/common/UtilAll.java +++ b/common/src/main/java/org/apache/rocketmq/common/UtilAll.java @@ -198,6 +198,11 @@ public class UtilAll { cal.get(Calendar.SECOND)); } + public static boolean isPathExists(final String path) { + File file = new File(path); + return file.exists(); + } + public static double getDiskPartitionSpaceUsedPercent(final String path) { if (null == path || path.isEmpty()) { log.error("Error when measuring disk space usage, path is null or empty, path : {}", path); diff --git a/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java b/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java index 8543ae4d7630235155cf77806c4a8691e7ee4036..5b4fb7aa64aebe468f88c98f4386c5a06773ce64 100644 --- a/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java +++ b/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java @@ -788,21 +788,23 @@ public class DefaultMessageStore implements MessageStore { double minPhysicsUsedRatio = Double.MAX_VALUE; String[] paths = commitLogStorePath.trim().split(MessageStoreConfig.MULTI_PATH_SPLITTER); for (String clPath : paths) { - double physicRatio = UtilAll.getDiskPartitionSpaceUsedPercent(clPath); + double physicRatio = UtilAll.isPathExists(clPath) ? + UtilAll.getDiskPartitionSpaceUsedPercent(clPath) : -1; result.put(RunningStats.commitLogDiskRatio.name() + "_" + clPath, String.valueOf(physicRatio)); minPhysicsUsedRatio = Math.min(minPhysicsUsedRatio, physicRatio); } result.put(RunningStats.commitLogDiskRatio.name(), String.valueOf(minPhysicsUsedRatio)); } else { String storePathPhysic = DefaultMessageStore.this.getMessageStoreConfig().getStorePathCommitLog(); - double physicRatio = UtilAll.getDiskPartitionSpaceUsedPercent(storePathPhysic); + double physicRatio = UtilAll.isPathExists(storePathPhysic) ? + UtilAll.getDiskPartitionSpaceUsedPercent(storePathPhysic) : -1; result.put(RunningStats.commitLogDiskRatio.name(), String.valueOf(physicRatio)); } { - String storePathLogics = StorePathConfigHelper.getStorePathConsumeQueue(this.messageStoreConfig.getStorePathRootDir()); - double logicsRatio = UtilAll.getDiskPartitionSpaceUsedPercent(storePathLogics); + double logicsRatio = UtilAll.isPathExists(storePathLogics) ? + UtilAll.getDiskPartitionSpaceUsedPercent(storePathLogics) : -1; result.put(RunningStats.consumeQueueDiskRatio.name(), String.valueOf(logicsRatio)); }