apache / apache/iotdb

[Bug] FragmentInstance 20230215_122615_48442_3.1.0 is aborted by timeout

オープン
#9,069 コメント 0 件 リアクション 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

V1.0.0 Red Hat 4.8.5-39

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

distributed mode 3C3D

schema_replication_factor = 3
data_replication_factor = 2

1、user iotdb-benchmark execute pressure test
10000 device 3 sensor
write 2billion point

2、use start-cli execute this sql
SELECT last sabcdefghijkdk_1 FROM root.test.g_0.dsdfsfjsjfieir_1243;

then timeout occurs

### What did you expect to see?

it should be a simple result

### What did you see instead?

2023-02-15 20:27:15,457 [pool-27-IoTDB-ClientRPC-Processor-1627] WARN o.a.i.d.u.ErrorHandlingUtils:90 - Status code: 301, Query Statement: "SELECT last sabcdefghijkdk_1 FROM root.test.g_0.dsdfsfjsjfieir_1243". executeStatement failed
org.apache.iotdb.commons.exception.IoTDBException: org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceFailureInfo$FailureException: FragmentInstance 20230215_122615_48442_3.1.0 is aborted by timeout
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.dealWithException(QueryExecution.java:430)
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.getResult(QueryExecution.java:413)
at org.apache.iotdb.db.mpp.plan.execution.QueryExecution.getByteBufferBatchResult(QueryExecution.java:448)
at org.apache.iotdb.db.utils.QueryDataSetUtils.convertQueryResultByFetchSize(QueryDataSetUtils.java:387)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.lambda$static$0(ClientRPCServiceImpl.java:160)
at org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl.executeStatementInternal(ClientRPCServiceImpl.java:236)
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:750)
Caused by: org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceFailureInfo$FailureException: FragmentInstance 20230215_122615_48442_3.1.0 is aborted by timeout
at org.apache.iotdb.db.mpp.execution.schedule.DriverScheduler.clearDriverTask(DriverScheduler.java:246)
at org.apache.iotdb.db.mpp.execution.schedule.DriverScheduler.access$900(DriverScheduler.java:54)
at org.apache.iotdb.db.mpp.execution.schedule.DriverScheduler$Scheduler.toAborted(DriverScheduler.java:390)
at org.apache.iotdb.db.mpp.execution.schedule.DriverTaskTimeoutSentinelThread.execute(DriverTaskTimeoutSentinelThread.java:77)
at org.apache.iotdb.db.mpp.execution.schedule.AbstractDriverThread.run(AbstractDriverThread.java:74)

### Anything else?

_No response_

### Are you willing to submit a PR?

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

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

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

調査の方向性

ClientRPCServiceImpl と QueryExecution の報告された呼び出しパスから始め、次にタイムアウトが発生する DriverScheduler と DriverTaskTimeoutSentinelThread を調べます。指定されたレプリケーション係数とクエリで、記載された分散 3C3D 再現を実行し、中断せずに期待される単純な結果を返すことを確認します。

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

評価

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

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

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