select timeseries failed: executeStatement failed. java.lang.IllegalArgumentException: Invalid input: 70
- 主要语言
- Java
- 星标
- 6.4k
- 派生
- 1.2k
- 平均合并
- 1 天 23 小时
- 30 天内合并 PR
- 115
描述
**Describe the bug**
1. the following error occurred when executing SQL:
'select * from root.sdlink.tp.lsy00143010.IFrzEpIn where time > 2022-09-14T05:39:11 ORDER BY time ASC limit 1',
the error is 'Msg: 500: [INTERNAL_SERVER_ERROR(500)] Exception occurred: "select max(num_v) from root.sdlink.tp.lsy00143010.IFrzEpIn". executeStatement failed. java.lang.IllegalArgumentException: Invalid input: 70'.
2. the error disappears after the query time is adjusted, SQL is 'select * from root.sdlink.tp.lsy00143010.IFrzEpIn where time >2022-09-14T16:39:11 ORDER BY time ASC limit 1';
**IoTDB Server logs**
2022-09-14 08:48:24,578 [pool-21-IoTDB-Sub_RawQuery-6] ERROR o.a.i.d.q.d.RawQueryDataSetWithoutValueFilter$ReadTask:154 - Something gets wrong:
java.lang.IllegalArgumentException: Invalid input: 72
at org.apache.iotdb.tsfile.file.metadata.enums.MetadataIndexNodeType.deserialize(MetadataIndexNodeType.java:70)
at org.apache.iotdb.tsfile.file.metadata.MetadataIndexNode.deserializeFrom(MetadataIndexNode.java:107)
at org.apache.iotdb.tsfile.read.TsFileSequenceReader.getMetadataAndEndOffset(TsFileSequenceReader.java:984)
at org.apache.iotdb.tsfile.read.TsFileSequenceReader.getLeafMetadataIndexPair(TsFileSequenceReader.java:475)
at org.apache.iotdb.tsfile.read.TsFileSequenceReader.readTimeseriesMetadata(TsFileSequenceReader.java:447)
at org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache.get(TimeSeriesMetadataCache.java:196)
at org.apache.iotdb.db.utils.FileLoaderUtils.loadTimeSeriesMetadata(FileLoaderUtils.java:107)
at org.apache.iotdb.db.query.reader.series.SeriesReader.loadTimeSeriesMetadata(SeriesReader.java:1123)
at org.apache.iotdb.db.query.reader.series.SeriesReader.unpackSeqTsFileResource(SeriesReader.java:1089)
at org.apache.iotdb.db.query.reader.series.SeriesReader.tryToUnpackAllOverlappedFilesToTimeSeriesMetadata(SeriesReader.java:1012)
at org.apache.iotdb.db.query.reader.series.SeriesReader.hasNextFile(SeriesReader.java:260)
at org.apache.iotdb.db.query.reader.series.SeriesReader.hasNextChunk(SeriesReader.java:333)
at org.apache.iotdb.db.query.reader.series.SeriesRawDataBatchReader.readChunkData(SeriesRawDataBatchReader.java:170)
at org.apache.iotdb.db.query.reader.series.SeriesRawDataBatchReader.hasNextBatch(SeriesRawDataBatchReader.java:118)
at org.apache.iotdb.db.query.dataset.RawQueryDataSetWithoutValueFilter$ReadTask.runMayThrow(RawQueryDataSetWithoutValueFilter.java:96)
at org.apache.iotdb.db.concurrent.WrappedRunnable.run(WrappedRunnable.java:32)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
**IoTDB Version**
0.13.2
**Screenshots**

贡献指南
调研方向
复现失败的和调整后的 SQL 查询,然后从堆栈跟踪中的 MetadataIndexNodeType.deserialize 和 MetadataIndexNode.deserializeFrom 开始。通过 TsFileSequenceReader 跟踪元数据读取,并确认对于报告的数据范围和时间范围,查询不再引发 IllegalArgumentException。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java
- 领域
- databases
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100