apache / apache/iotdb

select timeseries failed: executeStatement failed. java.lang.IllegalArgumentException: Invalid input: 70

未关闭
#7,313 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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**

![f5e53d780b58b35b29f61a51396398c](https://user-images.githubusercontent.com/28997868/190109568-9cdd8375-9745-4dfc-8804-de49af894fc8.jpg)

贡献指南

打开贡献指南

调研方向

复现失败的和调整后的 SQL 查询,然后从堆栈跟踪中的 MetadataIndexNodeType.deserialize 和 MetadataIndexNode.deserializeFrom 开始。通过 TsFileSequenceReader 跟踪元数据读取,并确认对于报告的数据范围和时间范围,查询不再引发 IllegalArgumentException。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
databases
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。