apache / apache/iotdb-client-csharp

网络波动后导致获取连接失败

未關閉
#58 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
C#
星號
24
分支
6
PR 合併指標
30 天內沒有已合併 PR

描述

```
Apache.IoTDB.SessionPoolDepletedException: SessionPool depletion detected: Reconnection failed
---> Apache.IoTDB.ReconnectionFailedException: Error occurs when reconnecting session pool. Could not connect to any server
at Apache.IoTDB.SessionPool.Reconnect(Client originalClient, CancellationToken cancellationToken)
at Apache.IoTDB.SessionPool.ExecuteClientOperationAsync[TResult](AsyncOperation`1 operation, String errMsg, Boolean retryOnFailure, Boolean putClientBack)
--- End of inner exception stack trace ---
at Apache.IoTDB.SessionPool.ExecuteClientOperationAsync[TResult](AsyncOperation`1 operation, String errMsg, Boolean retryOnFailure, Boolean putClientBack)
at Apache.IoTDB.SessionPool.InsertRelationalTabletAsync(Tablet tablet)
at Apache.IoTDB.TableSessionPool.InsertAsync(Tablet tablet)
```

```
Apache.IoTDB.SessionPoolDepletedException: SessionPool depletion detected: Connection pool is empty and wait time out(2500s)
at Apache.IoTDB.ConcurrentClientQueue.Take()
at Apache.IoTDB.SessionPool.ExecuteClientOperationAsync[TResult](AsyncOperation`1 operation, String errMsg, Boolean retryOnFailure, Boolean putClientBack)
at Apache.IoTDB.SessionPool.InsertRelationalTabletAsync(Tablet tablet)
at Apache.IoTDB.TableSessionPool.InsertAsync(Tablet tablet)
```

因为使用的DDNS,中途出现IP变化网络波动后就再也连不上了,有概率出现

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

先追蹤 SessionPool.Reconnect 和 ExecuteClientOperationAsync,接著使用回報的 InsertAsync 路徑檢查 ConcurrentClientQueue.Take()。在連線期間重現 DDNS 位址變更,並確認工作階段集區能夠重新連線並復原,而不是維持空白或逾時。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
csharp
領域
databases, networking
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
冷清
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。