From 9be5eeb18c3945cf23b0ff0aaf5369362a12a139 Mon Sep 17 00:00:00 2001 From: Haonan Date: Wed, 22 Jan 2025 09:35:00 +0800 Subject: [PATCH] Fix delete data TsFileProcessor NPE (#14748) --- .../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 b343ced944ed..3b28ec76b5b6 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 @@ private void deleteDataInUnsealedFiles( 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(); + } } } }