This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 9d9902fa685 Fix insert object segment error when use multiple dirs
(#16965)
9d9902fa685 is described below
commit 9d9902fa685e4a1caa41b15286b54be0d61b8cff
Author: Haonan <[email protected]>
AuthorDate: Tue Dec 30 09:36:18 2025 +0800
Fix insert object segment error when use multiple dirs (#16965)
---
.../iotdb/db/storageengine/dataregion/DataRegion.java | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 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 82f5b7a0a71..7d7fb8b9180 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
@@ -3600,9 +3600,21 @@ public class DataRegion implements IDataRegionForQuery {
writeLock("writeObject");
try {
String relativeTmpPathString = objectNode.getFilePathString() + ".tmp";
- String objectFileDir =
TierManager.getInstance().getNextFolderForObjectFile();
- File objectTmpFile =
- FSFactoryProducer.getFSFactory().getFile(objectFileDir,
relativeTmpPathString);
+ String objectFileDir = null;
+ File objectTmpFile = null;
+ for (String objectDir :
TierManager.getInstance().getAllObjectFileFolders()) {
+ File tmpFile = FSFactoryProducer.getFSFactory().getFile(objectDir,
relativeTmpPathString);
+ if (tmpFile.exists()) {
+ objectFileDir = objectDir;
+ objectTmpFile = tmpFile;
+ break;
+ }
+ }
+ if (objectTmpFile == null) {
+ objectFileDir = TierManager.getInstance().getNextFolderForObjectFile();
+ objectTmpFile =
+ FSFactoryProducer.getFSFactory().getFile(objectFileDir,
relativeTmpPathString);
+ }
try (ObjectWriter writer = new ObjectWriter(objectTmpFile)) {
writer.write(
objectNode.isGeneratedByRemoteConsensusLeader(),