Jialin Qiao created IOTDB-3514:
----------------------------------
Summary: Query meets BufferUnderflowException
Key: IOTDB-3514
URL: https://issues.apache.org/jira/browse/IOTDB-3514
Project: Apache IoTDB
Issue Type: Bug
Affects Versions: 0.12.5
Reporter: Jialin Qiao
Attachments: 1652428226676-1162-1-0.zip
Failed to recover a TsFileResource, also failed to recover TsFileResource from
TsFile.
{code:java}
2022-06-16 08:09:14,374 [pool-126-IoTDB-Query-5] INFO
o.a.i.d.e.StorageEngine:582 - construct a processor instance, the storage group
is root.CNNP.FQ.03, Thread is 227
2022-06-16 08:09:14,374 [pool-57-IoTDB-RPC-Client-15] WARN
o.a.i.d.s.TSServiceImpl:2031 - [INTERNAL_SERVER_ERROR] Exception occurred while
executing executeQueryStatement "select last FQ_03_3RCV231MV_AVALUE from
root.CNNP.FQ.*".
java.util.concurrent.ExecutionException: java.nio.BufferUnderflowException
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at
org.apache.iotdb.db.service.TSServiceImpl.submitQueryTask(TSServiceImpl.java:848)
at
org.apache.iotdb.db.service.TSServiceImpl.executeQueryStatement(TSServiceImpl.java:780)
at
org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeQueryStatement.getResult(TSIService.java:2423)
at
org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeQueryStatement.getResult(TSIService.java:2403)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
at
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248)
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)
Caused by: java.nio.BufferUnderflowException: null
at java.nio.Buffer.nextGetIndex(Buffer.java:532)
at java.nio.HeapByteBuffer.getLong(HeapByteBuffer.java:417)
at
org.apache.iotdb.tsfile.utils.ReadWriteIOUtils.readLong(ReadWriteIOUtils.java:545)
at
org.apache.iotdb.tsfile.file.metadata.MetadataIndexNode.deserializeFrom(MetadataIndexNode.java:105)
at
org.apache.iotdb.tsfile.file.metadata.TsFileMetadata.deserializeFrom(TsFileMetadata.java:55)
at
org.apache.iotdb.tsfile.read.TsFileSequenceReader.readFileMetadata(TsFileSequenceReader.java:261)
at
org.apache.iotdb.tsfile.read.TsFileSequenceReader.getAllTimeseriesMetadata(TsFileSequenceReader.java:723)
at
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recoverResourceFromReader(TsFileRecoverPerformer.java:182)
at
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recoverResourceFromFile(TsFileRecoverPerformer.java:174)
at
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:104)
at
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverTsFiles(StorageGroupProcessor.java:696)
at
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:470)
at
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.<init>(StorageGroupProcessor.java:403)
at
org.apache.iotdb.db.engine.StorageEngine.buildNewStorageGroupProcessor(StorageEngine.java:591)
at
org.apache.iotdb.db.engine.storagegroup.virtualSg.VirtualStorageGroupManager.getProcessor(VirtualStorageGroupManager.java:140)
at
org.apache.iotdb.db.engine.StorageEngine.getStorageGroupProcessorByPath(StorageEngine.java:567)
at
org.apache.iotdb.db.engine.StorageEngine.getProcessor(StorageEngine.java:510)
at
org.apache.iotdb.db.engine.StorageEngine.mergeLock(StorageEngine.java:1048)
at
org.apache.iotdb.db.query.executor.LastQueryExecutor.calculateLastPairForSeriesLocally(LastQueryExecutor.java:179)
at
org.apache.iotdb.db.query.executor.LastQueryExecutor.calculateLastPairForSeries(LastQueryExecutor.java:146)
at
org.apache.iotdb.db.query.executor.LastQueryExecutor.execute(LastQueryExecutor.java:103)
at
org.apache.iotdb.db.query.executor.QueryRouter.lastQuery(QueryRouter.java:264)
at
org.apache.iotdb.db.qp.executor.PlanExecutor.processDataQuery(PlanExecutor.java:544)
at
org.apache.iotdb.db.qp.executor.PlanExecutor.processQuery(PlanExecutor.java:228)
at
org.apache.iotdb.db.service.TSServiceImpl.createQueryDataSet(TSServiceImpl.java:1148)
at
org.apache.iotdb.db.service.TSServiceImpl.access$600(TSServiceImpl.java:157)
at
org.apache.iotdb.db.service.TSServiceImpl$QueryTask.call(TSServiceImpl.java:284)
at
org.apache.iotdb.db.service.TSServiceImpl$QueryTask.call(TSServiceImpl.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 common frames omitted
2022-06-16 08:09:14,376 [pool-126-IoTDB-Query-5] INFO
o.a.i.d.e.s.StorageGroupProcessor:439 - recover Storage Group
root.CNNP.FQ.03-0
2022-06-16 08:09:14,744 [pool-126-IoTDB-Query-5] WARN
o.a.i.d.w.r.TsFileRecoverPerformer:170 - Cannot deserialize TsFileResource
/data/iotdb/apache-iotdb-0.12.3-all-bin/sbin/./../data/data/unsequence/root.CNNP.FQ.03/0/614/1652428226676-1162-1-0.tsfile,
construct it using TsFileSequenceReader
java.lang.IndexOutOfBoundsException: Invalid ordinal
at
org.apache.iotdb.db.engine.storagegroup.timeindex.TimeIndexLevel.valueOf(TimeIndexLevel.java:48)
at
org.apache.iotdb.db.engine.storagegroup.TsFileResource.deserialize(TsFileResource.java:257)
at
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recoverResourceFromFile(TsFileRecoverPerformer.java:168)
at
org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer.recover(TsFileRecoverPerformer.java:104)
at
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recoverTsFiles(StorageGroupProcessor.java:696)
at
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.recover(StorageGroupProcessor.java:470)
at
org.apache.iotdb.db.engine.storagegroup.StorageGroupProcessor.<init>(StorageGroupProcessor.java:403)
at
org.apache.iotdb.db.engine.StorageEngine.buildNewStorageGroupProcessor(StorageEngine.java:591)
at
org.apache.iotdb.db.engine.storagegroup.virtualSg.VirtualStorageGroupManager.getProcessor(VirtualStorageGroupManager.java:140)
at
org.apache.iotdb.db.engine.StorageEngine.getStorageGroupProcessorByPath(StorageEngine.java:567)
at
org.apache.iotdb.db.engine.StorageEngine.getProcessor(StorageEngine.java:510)
at
org.apache.iotdb.db.engine.StorageEngine.mergeLock(StorageEngine.java:1048)
at
org.apache.iotdb.db.query.executor.LastQueryExecutor.calculateLastPairForSeriesLocally(LastQueryExecutor.java:179)
at
org.apache.iotdb.db.query.executor.LastQueryExecutor.calculateLastPairForSeries(LastQueryExecutor.java:146)
at
org.apache.iotdb.db.query.executor.LastQueryExecutor.execute(LastQueryExecutor.java:103)
at
org.apache.iotdb.db.query.executor.QueryRouter.lastQuery(QueryRouter.java:264)
at
org.apache.iotdb.db.qp.executor.PlanExecutor.processDataQuery(PlanExecutor.java:544)
at
org.apache.iotdb.db.qp.executor.PlanExecutor.processQuery(PlanExecutor.java:228)
at
org.apache.iotdb.db.service.TSServiceImpl.createQueryDataSet(TSServiceImpl.java:1148)
at
org.apache.iotdb.db.service.TSServiceImpl.access$600(TSServiceImpl.java:157)
at
org.apache.iotdb.db.service.TSServiceImpl$QueryTask.call(TSServiceImpl.java:284)
at
org.apache.iotdb.db.service.TSServiceImpl$QueryTask.call(TSServiceImpl.java:222)
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) {code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)