apache / apache/iotdb

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

オープン
#7,313 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
6.4k
フォーク
1.2k
平均マージ
1日 23時間
マージ済み PR(30日)
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クエリと調整後のSQLクエリを再現し、その後、スタックトレースにあるMetadataIndexNodeType.deserializeとMetadataIndexNode.deserializeFromから始めます。TsFileSequenceReaderを通じてメタデータの読み取りを追跡し、報告されたデータ範囲および時間範囲に対してクエリがIllegalArgumentExceptionを発生させなくなったことを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
databases
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。