FengQingxin created IOTDB-3732:
----------------------------------
Summary: CLONE - "io task meets error" is not handled correctly
Key: IOTDB-3732
URL: https://issues.apache.org/jira/browse/IOTDB-3732
Project: Apache IoTDB
Issue Type: Bug
Affects Versions: 0.13.0, 0.12.5
Reporter: FengQingxin
Assignee: Haonan Hou
When restarting IoTDB and flushing the wal, the io task meets error.
It throw a RuntimeException, however, this exception is not catched by
TsFileProcessor, TsFileProcessor still ends the file, which causes a corrupt
tsfile.
2022-04-21 22:29:19,461 [pool-2-IoTDB-Flush-SubTask-2] ERROR
o.a.i.d.e.f.MemTableFlushTask:297 - Storage group 2 memtable
PrimitiveMemTable{planIndex=[0,0]}, io task meets error.
java.io.IOException: Bytes written is inconsistent with the size of data: 57 !=
45
at
org.apache.iotdb.tsfile.write.chunk.ChunkWriterImpl.writeAllPagesOfChunkToTsFile(ChunkWriterImpl.java:459)
at
org.apache.iotdb.tsfile.write.chunk.ChunkWriterImpl.writeToFileWriter(ChunkWriterImpl.java:323)
at
org.apache.iotdb.db.engine.flush.MemTableFlushTask.lambda$new$0(MemTableFlushTask.java:290)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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)
2022-04-21 22:29:24,797 [Thread-4] INFO o.a.i.d.e.f.MemTableFlushTask:150 -
Storage group 2 memtable PrimitiveMemTable{planIndex=[0,0]} flushing a memtable
has finished! Time consumption: 5448ms
--
This message was sent by Atlassian Jira
(v8.20.10#820010)