You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@iotdb.apache.org by "刘珍 (Jira)" <ji...@apache.org> on 2022/03/07 07:36:00 UTC

[jira] [Created] (IOTDB-2693) [compaction] org.apache.commons.io.FileExistsException: File element in parameter 'null' already exists

刘珍 created IOTDB-2693:
-------------------------

             Summary: [compaction] org.apache.commons.io.FileExistsException: File element in parameter 'null' already exists
                 Key: IOTDB-2693
                 URL: https://issues.apache.org/jira/browse/IOTDB-2693
             Project: Apache IoTDB
          Issue Type: Bug
          Components: Core/Compaction
            Reporter: 刘珍
         Attachments: image-2022-03-07-15-19-26-903.png, image-2022-03-07-15-29-25-036.png

被测iotdb信息,是个分支版本:
https://github.com/choubenson/iotdb/tree/formatCompactionLog
测试内容:0.12合并中断 ( 有delete操作),然后0.13恢复的正确性。
问题描述:合并过程中有异常
 !image-2022-03-07-15-19-26-903.png! 

复现流程:
1. 0.12.5-pre4 关合并,生成数据,记作备份1。
在192.168.10.68 /data/liuzhen_test/1205_pre4/data_bk_close-comp路径。
共10sg/100设备 /100 序列,每个序列2亿点。

unseq tsfile个数:50064
seq tsfile个数:50076

2. 0.12 0305版本3154faf。copy 备份1 到此iotdb (68机器/data/liuzhen_test/12_0305_3154faf下)。
merge_thread_num=2
2022-03-07 09:49:42 启动iotdb成功。
2022-03-07 11:10:26 :(启动数据库1小时20分钟)执行delete操作,脚本为:
#!/bin/bash
base_db_dir="/data/liuzhen_test/1205_pre4"
out_dev="dev_name.txt"
function expDevNameToFile()
{
        ${base_db_dir}/sbin/start-cli.sh  -e "set max_display_num=0 ;show devices;"|grep root|awk -F '|' '{print $2}'>${out_dev}
}

expDevNameToFile

# delete 2 row  1 of seq ,1 of unseq
function del2rows()
{
   while read LINE
   do
      ${base_db_dir}/sbin/start-cli.sh -e " select s_0 from "$LINE" where time=2024-05-24T18:00:05.000+08:00 or time=2034-01-24T18:53:22.000+08:00" >> sel_del_sel.out
      ${base_db_dir}/sbin/start-cli.sh -e " delete from "$LINE" where time=2034-01-24T18:53:22.000+08:00" >> sel_del_sel.out
      ${base_db_dir}/sbin/start-cli.sh -e " delete from "$LINE" where time=2024-05-24T18:00:05.000+08:00" >> sel_del_sel.out
      ${base_db_dir}/sbin/start-cli.sh -e " select s_0 from "$LINE" where time=2024-05-24T18:00:05.000+08:00 or time=2034-01-24T18:53:22.000+08:00" >> sel_del_sel.out
      echo $LINE

   done  < ${out_dev}
}
del2rows

执行脚本完成后,killall -u liuzhen

删除iotdb进程,当前的合并情况和mods情况:
342个mods文件。
2个merge,4个compaction:
 !image-2022-03-07-15-29-25-036.png! 

备份此数据,记作备份2。

3. 被测分支:在68机器
/data/liuzhen_test/pr_0304_formatCompactionLog
copy备份2 到此路径。
启动数据库。
启动数据库后,执行脚本:
nohup sh -x r.sh > r.log &
这个脚本串行调用2个脚本:
sh -x ./select_del-2rows.sh > s.log
sh -x ./q.sh > q.log
这3个脚本见附件。
2022-03-07 11:37:49 iotdb启动成功。2小时18分钟后有异常:
2022-03-07 13:55:51,443 [pool-7-IoTDB-Compaction-5] ERROR o.a.i.t.f.f.LocalFSFactory:118 - Failed to move file from /data/liuzhen_test/pr_0304_formatCompactionLog/./sbin/../data/data/sequence/root.ip5.ip53/0/0/1645065803917-37-1-1.inner to /data/liuzhen_test/pr_0304_formatCompactionLog/./sbin/../data/data/sequence/root.ip5.ip53/0/0/1645065803917-37-1-1.tsfile.
org.apache.commons.io.FileExistsException: File element in parameter 'null' already exists: '/data/liuzhen_test/pr_0304_formatCompactionLog/./sbin/../data/data/sequence/root.ip5.ip53/0/0/1645065803917-37-1-1.tsfile'
        at org.apache.commons.io.FileUtils.requireAbsent(FileUtils.java:2587)
        at org.apache.commons.io.FileUtils.moveFile(FileUtils.java:2305)
        at org.apache.commons.io.FileUtils.moveFile(FileUtils.java:2283)
        at org.apache.iotdb.tsfile.fileSystem.fsFactory.LocalFSFactory.moveFile(LocalFSFactory.java:116)
        at org.apache.iotdb.db.engine.compaction.inner.utils.InnerSpaceCompactionUtils.moveTargetFile(InnerSpaceCompactionUtils.java:285)
        at org.apache.iotdb.db.engine.compaction.inner.sizetiered.SizeTieredCompactionTask.doCompaction(SizeTieredCompactionTask.java:127)
        at org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask.call(AbstractCompactionTask.java:66)
        at org.apache.iotdb.db.engine.compaction.task.AbstractCompactionTask.call(AbstractCompactionTask.java:45)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)





--
This message was sent by Atlassian Jira
(v8.20.1#820001)