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 2025/01/21 10:49:33 UTC

(iotdb) branch fix_delete_data_tsp_npe created (now 0ca6ebc266b)

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

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


      at 0ca6ebc266b Fix delete data TsFileProcessor NPE

This branch includes the following new commits:

     new 0ca6ebc266b Fix delete data TsFileProcessor NPE

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(iotdb) 01/01: Fix delete data TsFileProcessor NPE

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 0ca6ebc266b86fb65e5a72d87722a20606359ca4
Author: HTHou <ha...@apache.org>
AuthorDate: Tue Jan 21 18:47:40 2025 +0800

    Fix delete data TsFileProcessor NPE
---
 .../db/storageengine/dataregion/DataRegion.java    | 23 +++++++++++++---------
 1 file changed, 14 insertions(+), 9 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 b343ced944e..3b28ec76b5b 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
@@ -2505,17 +2505,22 @@ public class DataRegion implements IDataRegionForQuery {
       if (tsFileResource.isClosed()) {
         sealedTsFiles.add(tsFileResource);
       } else {
-        tsFileResource.getProcessor().getFlushQueryLock().writeLock().lock();
-        if (tsFileResource.isClosed()) {
+        TsFileProcessor tsFileProcessor = tsFileResource.getProcessor();
+        if (tsFileProcessor == null) {
           sealedTsFiles.add(tsFileResource);
-          tsFileResource.getProcessor().getFlushQueryLock().writeLock().unlock();
         } else {
-          try {
-            if (!tsFileResource.getProcessor().deleteDataInMemory(deletion)) {
-              sealedTsFiles.add(tsFileResource);
-            } // else do nothing
-          } finally {
-            tsFileResource.getProcessor().getFlushQueryLock().writeLock().unlock();
+          tsFileProcessor.getFlushQueryLock().writeLock().lock();
+          if (tsFileResource.isClosed()) {
+            sealedTsFiles.add(tsFileResource);
+            tsFileProcessor.getFlushQueryLock().writeLock().unlock();
+          } else {
+            try {
+              if (!tsFileProcessor.deleteDataInMemory(deletion)) {
+                sealedTsFiles.add(tsFileResource);
+              } // else do nothing
+            } finally {
+              tsFileProcessor.getFlushQueryLock().writeLock().unlock();
+            }
           }
         }
       }