apache / apache/iotdb

count聚合出错0.13版本

Offen
#6,435 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
6.4k
Forks
1.2k
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
115

Beschreibung

查询可以,聚合出错
```
IoTDB> select * from root.sg.JIN_TNC order by Time desc limit 10
+-----------------------------+--------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------------+
| Time|root.sg.JIN_TNC.IO10|root.sg.JIN_TNC.IO1|root.sg.JIN_TNC.IO3|root.sg.JIN_TNC.IO2|root.sg.JIN_TNC.IO5|root.sg.JIN_TNC.IO4|root.sg.JIN_TNC.IO7|root.sg.JIN_TNC.IO6|root.sg.JIN_TNC.IO9|root.sg.JIN_TNC.IO8| root.sg.JIN_TNC.tm|
+-----------------------------+--------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------------+
|2022-06-25T13:20:35.183+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:34+08:00|
|2022-06-25T13:20:35.026+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:33+08:00|
|2022-06-25T13:20:34.558+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:33+08:00|
|2022-06-25T13:20:34.417+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:33+08:00|
|2022-06-25T13:20:34.292+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:33+08:00|
|2022-06-25T13:20:34.151+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:33+08:00|
|2022-06-25T13:20:33.933+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:32+08:00|
|2022-06-25T13:20:33.776+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:32+08:00|
|2022-06-25T13:20:33.323+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:32+08:00|
|2022-06-25T13:20:33.183+08:00| 1.00| 0.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00| 1.00|2022-06-25T13:20:32+08:00|
+-----------------------------+--------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------------+
Total line number = 10
It costs 0.025s
IoTDB> select count(*) from root.sg.JIN_TNC
Msg: 500: [INTERNAL_SERVER_ERROR(500)] Exception occurred: "select count(*) from root.sg.JIN_TNC". executeStatement failed. java.nio.BufferUnderflowException
```

IOTDB中的报错信息
```
2022-06-25 13:20:50,547 [pool-15-IoTDB-RPC-Client-1] WARN o.a.i.d.u.ErrorHandlingUtils:61 - Status code: INTERNAL_SERVER_ERROR(500), operation: "select count(*) from root.sg.JIN_TNC". executeStatement failed
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.thrift.impl.TSServiceImpl.submitQueryTask(TSServiceImpl.java:785)
at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeStatement(TSServiceImpl.java:619)
at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeStatement.getResult(TSIService.java:2853)
at org.apache.iotdb.service.rpc.thrift.TSIService$Processor$executeStatement.getResult(TSIService.java:2833)
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.HeapByteBuffer.get(HeapByteBuffer.java:154)
at org.apache.iotdb.tsfile.utils.ReadWriteIOUtils.readVarIntString(ReadWriteIOUtils.java:601)
at org.apache.iotdb.tsfile.file.metadata.MetadataIndexEntry.deserializeFrom(MetadataIndexEntry.java:66)
at org.apache.iotdb.tsfile.file.metadata.MetadataIndexNode.deserializeFrom(MetadataIndexNode.java:103)
at org.apache.iotdb.tsfile.read.TsFileSequenceReader.getLeafMetadataIndexPair(TsFileSequenceReader.java:480)
at org.apache.iotdb.tsfile.read.TsFileSequenceReader.readTimeseriesMetadata(TsFileSequenceReader.java:444)
at org.apache.iotdb.db.engine.cache.TimeSeriesMetadataCache.get(TimeSeriesMetadataCache.java:199)
at org.apache.iotdb.db.utils.FileLoaderUtils.loadTimeSeriesMetadata(FileLoaderUtils.java:104)
at org.apache.iotdb.db.query.reader.series.SeriesReader.loadTimeSeriesMetadata(SeriesReader.java:1125)
at org.apache.iotdb.db.query.reader.series.SeriesReader.unpackSeqTsFileResource(SeriesReader.java:1091)
at org.apache.iotdb.db.query.reader.series.SeriesReader.tryToUnpackAllOverlappedFilesToTimeSeriesMetadata(SeriesReader.java:1014)
at org.apache.iotdb.db.query.reader.series.SeriesReader.hasNextFile(SeriesReader.java:263)
at org.apache.iotdb.db.query.reader.series.SeriesAggregateReader.hasNextFile(SeriesAggregateReader.java:93)
at org.apache.iotdb.db.query.executor.AggregationExecutor.aggregateFromReader(AggregationExecutor.java:390)
at org.apache.iotdb.db.query.executor.AggregationExecutor.aggregateOneSeries(AggregationExecutor.java:304)
at org.apache.iotdb.db.query.executor.AggregationExecutor.aggregateOneSeries(AggregationExecutor.java:195)
at org.apache.iotdb.db.query.executor.AggregationExecutor.executeWithoutValueFilter(AggregationExecutor.java:149)
at org.apache.iotdb.db.query.executor.QueryRouter.aggregate(QueryRouter.java:123)
at org.apache.iotdb.db.qp.executor.PlanExecutor.processDataQuery(PlanExecutor.java:630)
at org.apache.iotdb.db.qp.executor.PlanExecutor.processQuery(PlanExecutor.java:258)
at org.apache.iotdb.db.service.basic.ServiceProvider.createQueryDataSet(ServiceProvider.java:264)
at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.executeQueryPlan(TSServiceImpl.java:821)
at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl.access$000(TSServiceImpl.java:163)
at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl$QueryTask.call(TSServiceImpl.java:221)
at org.apache.iotdb.db.service.thrift.impl.TSServiceImpl$QueryTask.call(TSServiceImpl.java:165)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 common frames omitted
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Führe `select count(*) from root.sg.JIN_TNC` nach der erfolgreichen Datenabfrage erneut aus und verfolge dann den Stack von `AggregationExecutor` über `SeriesReader` bis zu `TsFileSequenceReader`. Untersuche die Deserialisierung der Metadaten in `MetadataIndexEntry.deserializeFrom` und `MetadataIndexNode.deserializeFrom`; abgeschlossen ist die Aufgabe, wenn die Zählabfrage für die gemeldeten Daten nicht mehr `BufferUnderflowException` auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
databases
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.