apache / apache/iotdb

session查询sql时报错

オープン
#5,953 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
6.4k
フォーク
1.2k
平均マージ
1日 23時間
マージ済み PR(30日)
115

説明

session查询数据时出现解析sql非法参数异常, 但执行max_time没问题

ERROR o.a.i.d.q.d.RawQueryDataSetWithoutValueFilter$ReadTask:148 - Something gets wrong:
java.lang.IllegalArgumentException: Invalid input: 63
at org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding.getTsEncoding(TSEncoding.java:69)
at org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding.deserialize(TSEncoding.java:45)
at org.apache.iotdb.tsfile.utils.ReadWriteIOUtils.readEncoding(ReadWriteIOUtils.java:809)
at org.apache.iotdb.tsfile.file.header.ChunkHeader.deserializeFrom(ChunkHeader.java:170)
at org.apache.iotdb.tsfile.read.TsFileSequenceReader.readChunkHeader(TsFileSequenceReader.java:889)
at org.apache.iotdb.tsfile.read.TsFileSequenceReader.readMemChunk(TsFileSequenceReader.java:911)
at org.apache.iotdb.db.engine.cache.ChunkCache.lambda$new$1(ChunkCache.java:80)
at com.github.benmanes.caffeine.cache.LocalLoadingCache.lambda$newMappingFunction$2(LocalLoadingCache.java:141)
at com.github.benmanes.caffeine.cache.LocalCache.lambda$statsAware$0(LocalCache.java:139)
at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2405)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2403)
at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2386)
at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108)
at com.github.benmanes.caffeine.cache.LocalLoadingCache.get(LocalLoadingCache.java:54)
at org.apache.iotdb.db.engine.cache.ChunkCache.get(ChunkCache.java:109)
at org.apache.iotdb.db.query.reader.chunk.DiskChunkLoader.loadChunk(DiskChunkLoader.java:40)
at org.apache.iotdb.db.utils.FileLoaderUtils.loadPageReaderList(FileLoaderUtils.java:172)
at org.apache.iotdb.db.query.reader.series.SeriesReader.unpackOneChunkMetaData(SeriesReader.java:525)
at org.apache.iotdb.db.query.reader.series.SeriesReader.unpackAllOverlappedChunkMetadataToPageReaders(SeriesReader.java:514)
at org.apache.iotdb.db.query.reader.series.SeriesReader.hasNextOverlappedPage(SeriesReader.java:691)
at org.apache.iotdb.db.query.reader.series.SeriesReader.isExistOverlappedPage(SeriesReader.java:463)
at org.apache.iotdb.db.query.reader.series.SeriesReader.hasNextPage(SeriesReader.java:441)
at org.apache.iotdb.db.query.reader.series.SeriesRawDataBatchReader.readPageData(SeriesRawDataBatchReader.java:182)
at org.apache.iotdb.db.query.reader.series.SeriesRawDataBatchReader.readChunkData(SeriesRawDataBatchReader.java:174)
at org.apache.iotdb.db.query.reader.series.SeriesRawDataBatchReader.hasNextBatch(SeriesRawDataBatchReader.java:130)
at org.apache.iotdb.db.query.dataset.RawQueryDataSetWithoutValueFilter$ReadTask.runMayThrow(RawQueryDataSetWithoutValueFilter.java:89)
at org.apache.iotdb.db.concurrent.WrappedRunnable.run(WrappedRunnable.java:32)
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)

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まずセッションクエリを再現し、動作する max_time クエリと比較します。RawQueryDataSetWithoutValueFilter$ReadTask から ChunkCache、TsFileSequenceReader.readChunkHeader を経て TSEncoding.getTsEncoding まで、失敗の経路を追跡します。encoding 値 63 が読み取られる理由を特定し、セッションクエリが無効なパラメータ例外を発生させなくなったことを確認できれば完了です。

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

評価

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

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

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