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)