This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch load-multi-dir-fix in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 87f616cdc6cdfc1a9bc99afe66c35ab85ed34571 Author: Steve Yurong Su <[email protected]> AuthorDate: Tue Jun 11 20:50:47 2024 +0800 Load: Update loadTsFileDirs after all newLoadTsFileDirs are generated to avoid undefined behavior --- .../src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java index de2ba36464b..ea42d9f4d73 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java @@ -1467,11 +1467,16 @@ public class IoTDBConfig { } public void formulateLoadTsFileDirs(String[][] tierDataDirs) { - loadTsFileDirs = new String[tierDataDirs.length]; + final String[] newLoadTsFileDirs = new String[tierDataDirs.length]; for (int i = 0; i < tierDataDirs.length; i++) { - loadTsFileDirs[i] = + newLoadTsFileDirs[i] = tierDataDirs[i][0] + File.separator + IoTDBConstant.LOAD_TSFILE_FOLDER_NAME; } + + // Update loadTsFileDirs after all newLoadTsFileDirs are generated, + // or the newLoadTsFileDirs will be used in the middle of the process + // and cause the undefined behavior. + this.loadTsFileDirs = newLoadTsFileDirs; } public String getSchemaDir() {
