apache / apache/iotdb

[Bug] iotdb 1.0 regionReplicaSet is invalid: null

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

説明

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Version

centos 7.4 iotdb 1.0

### Describe the bug and provide the minimal reproduce step

SQL:

SELECT
last_value(green_warning_lamp) as green_warning_lamp,
last_value(blue_warning_lamp) as blue_warning_lamp,
last_value(red_warning_lamp) as red_warning_lamp,
last_value(yellow_warning_lamp) as yellow_warning_lamp
FROM root.aa.bb.**
WHERE Time> 2023-01-04 12:00:00
align by device
当时间过滤条件设置为较新时 如 now-1h,会报
java.lang.IllegalArgumentException: regionReplicaSet is invalid: null
at org.apache.iotdb.db.mpp.plan.planner.distribution.SimpleFragmentParallelPlanner.selectTargetDataNode(SimpleFragmentParallelPlanner.java:129)
at org.apache.iotdb.db.mpp.plan.planner.distribution.SimpleFragmentParallelPlanner.produceFragmentInstance(SimpleFragmentParallelPlanner.java:115)
at org.apache.iotdb.db.mpp.plan.planner.distribution.SimpleFragmentParallelPlanner.prepare(SimpleFragmentParallelPlanner.java:87)
at org.apache.iotdb.db.mpp.plan.planner.distribution.SimpleFragmentParallelPlanner.parallelPlan(SimpleFragmentParallelPlanner.java:78)
at org.apache.iotdb.db.mpp.plan.planner.distribution.DistributionPlanner.planFragmentInstances(DistributionPlanner.java:94)
at org.apache.iotdb.db.mpp.plan.planner.distribution.DistributionPlanner.planFragments(DistributionPlanner.java:78)
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.doDistributedPlan(QueryExecution.java:304)
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.start(QueryExecution.java:201)
at org.apache.iotdb.db.mpp.plan.Coordinator.execute(Coordinator.java:150)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatementInternal(ClientRPCServiceImpl.java:215)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatementV2(ClientRPCServiceImpl.java:390)
at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatementV2.getResult(IClientRPCService.java:3453)
at org.apache.iotdb.service.rpc.thrift.IClientRPCService$Processor$executeStatementV2.getResult(IClientRPCService.java:3433)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
at org.apache.iotdb.db.service.thrift.ProcessorWithMetrics.process(ProcessorWithMetrics.java:64)
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)
regionReplicaSet is invalid: null

### What did you expect to see?

success query

### What did you see instead?

regionReplicaSet is invalid: null

### Anything else?

_No response_

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

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

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

調査の方向性

最近の時間フィルターを使用して IoTDB 1.0 で SQL クエリを再現し、その後スタックトレースの SimpleFragmentParallelPlanner.selectTargetDataNode、特に 129 行目から開始して、DistributionPlanner を通じたプランニング呼び出しを追跡します。クエリが "regionReplicaSet is invalid: null" を発生させずに正常に完了すれば完了です。

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

評価

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

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

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