This is an automated email from the ASF dual-hosted git repository.

haonan pushed a commit to branch fix_recover_empty_resource
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 9db0ad9db02316dbcfd5c89da0d46a331e741c7e
Author: HTHou <[email protected]>
AuthorDate: Wed Nov 1 16:17:12 2023 +0800

    fix empty resource recovered from wal
---
 .../org/apache/iotdb/db/storageengine/dataregion/DataRegion.java  | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
index 3398f66e876..024f5dfd2ad 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java
@@ -724,16 +724,16 @@ public class DataRegion implements IDataRegionForQuery {
       TsFileResource tsFileResource = recoverPerformer.getTsFileResource();
       boolean isSeq = recoverPerformer.isSequence();
       if (!recoverPerformer.canWrite()) {
-        if (!TsFileValidator.getInstance().validateTsFile(tsFileResource)) {
-          tsFileResource.remove();
-          return;
-        }
         // cannot write, just close it
         try {
           tsFileResource.close();
         } catch (IOException e) {
           logger.error("Fail to close TsFile {} when recovering", 
tsFileResource.getTsFile(), e);
         }
+        if (!TsFileValidator.getInstance().validateTsFile(tsFileResource)) {
+          tsFileResource.remove();
+          return;
+        }
         updateLastFlushTime(tsFileResource, isSeq);
         tsFileResourceManager.registerSealedTsFileResource(tsFileResource);
         FileMetrics.getInstance()

Reply via email to