This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch GracelyExit-1.3 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 6aeee1365ebbf5dd99ee3443ce2554952f965b1f Author: JackieTien97 <[email protected]> AuthorDate: Tue Jul 15 11:22:11 2025 +0800 [To dev/1.3] Avoid NPE while stop DN --- .../java/org/apache/iotdb/db/schemaengine/SchemaEngine.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/SchemaEngine.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/SchemaEngine.java index 0ad1cc6f10b..cf5dc24169f 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/SchemaEngine.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/SchemaEngine.java @@ -242,7 +242,7 @@ public class SchemaEngine { } } - public void clear() { + public synchronized void clear() { schemaRegionLoader.clear(); // clearSchemaResource will shut down release and flush task in PBTree mode, which must be @@ -260,6 +260,7 @@ public class SchemaEngine { } schemaRegionMap.clear(); schemaRegionMap = null; + logger.info("clear schema region map."); } // SchemaMetric should be cleared lastly if (schemaMetricManager != null) { @@ -282,7 +283,10 @@ public class SchemaEngine { public synchronized void createSchemaRegion( PartialPath storageGroup, SchemaRegionId schemaRegionId) throws MetadataException { - ISchemaRegion schemaRegion = schemaRegionMap.get(schemaRegionId); + if (this.schemaRegionMap == null) { + throw new MetadataException("Peer is shutting down now."); + } + final ISchemaRegion schemaRegion = this.schemaRegionMap.get(schemaRegionId); if (schemaRegion != null) { if (schemaRegion.getDatabaseFullPath().equals(storageGroup.getFullPath())) { return; @@ -294,7 +298,7 @@ public class SchemaEngine { schemaRegionId, schemaRegion.getDatabaseFullPath(), storageGroup.getFullPath())); } } - schemaRegionMap.put( + this.schemaRegionMap.put( schemaRegionId, createSchemaRegionWithoutExistenceCheck(storageGroup, schemaRegionId)); }
