Create a new session on closing of another can create deadlock
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
まず、提供されたスタックトレースを入口として、tech.ydb.table.impl.pool.SessionPool、WaitingQueue、BaseSession、tech.ydb.core.impl.pool.GrpcChannel を通じたセッション作成と待機動作を追跡します。別のセッションがクローズ中にセッションを作成するとデッドロックが発生するケースを再現または切り分け、その後、セッションプールの操作が互いにブロックすることなく完了することを確認します。
索引モデルが issue の本文から書いたものです。
説明
"grpc-default-worker-ELG-1-1" #57 daemon prio=5 os_prio=0 cpu=25024.63ms elapsed=2828.70s tid=0x00007fc0e6a9d010 nid=0x533f waiting on condition [0x00007fc0e69f8000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
- parking to wait for <0x00000000c36ea3d0> (a java.util.concurrent.CompletableFuture$Signaller)
at java.util.concurrent.locks.LockSupport.parkNanos([email protected]/LockSupport.java:252)
at java.util.concurrent.CompletableFuture$Signaller.block([email protected]/CompletableFuture.java:1866)
at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3463)
at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3434)
at java.util.concurrent.CompletableFuture.timedGet([email protected]/CompletableFuture.java:1939)
at java.util.concurrent.CompletableFuture.get([email protected]/CompletableFuture.java:2095)
at tech.ydb.core.impl.pool.GrpcChannel$ReadyWatcher.getReadyChannel(GrpcChannel.java:80)
at tech.ydb.core.impl.pool.GrpcChannel.getReadyChannel(GrpcChannel.java:46)
at tech.ydb.core.impl.BaseGrpcTransport.unaryCall(BaseGrpcTransport.java:84)
at tech.ydb.table.rpc.grpc.GrpcTableRpc.createSession(GrpcTableRpc.java:50)
at tech.ydb.table.impl.BaseSession.createSessionId(BaseSession.java:174)
at tech.ydb.table.impl.pool.SessionPool$Handler.create(SessionPool.java:183)
at tech.ydb.table.impl.pool.WaitingQueue.tryToCreateNewPending(WaitingQueue.java:226)
at tech.ydb.table.impl.pool.WaitingQueue.checkNextWaitingAcquire(WaitingQueue.java:276)
at tech.ydb.table.impl.pool.WaitingQueue.lambda$checkNextWaitingAcquire$0(WaitingQueue.java:279)
at tech.ydb.table.impl.pool.WaitingQueue$$Lambda$2581/0x00000008013e9000.accept(Unknown Source)
at java.util.concurrent.CompletableFuture.uniWhenComplete([email protected]/CompletableFuture.java:863)
at java.util.concurrent.CompletableFuture.uniWhenCompleteStage([email protected]/CompletableFuture.java:887)
at java.util.concurrent.CompletableFuture.whenComplete([email protected]/CompletableFuture.java:2325)
at tech.ydb.table.impl.pool.WaitingQueue.checkNextWaitingAcquire(WaitingQueue.java:277)
at tech.ydb.table.impl.pool.WaitingQueue.lambda$checkNextWaitingAcquire$0(WaitingQueue.java:279)
at tech.ydb.table.impl.pool.WaitingQueue$$Lambda$2581/0x00000008013e9000.accept(Unknown Source)
- 主要言語
- Java
- スター
- 53
- フォーク
- 41
- 平均マージ
- 1日 30分
- マージ済み PR(30日)
- 18
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ydb-platform/ydb-java-sdk のほかの issue
-
Java SDK: `describeTable()` не возвращает JSON-индексы対応中かも @vgvoleg が 9 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
ydb-platform/ydb-java-sdk#756 ·
メンテナーはふだん 1 日以内に返信
-
enhancement feature-parity
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
ydb-platform/ydb-java-sdk#651 ·
メンテナーはふだん 1 日以内に返信
-
bug: "Sent message larger than max" error is retryable対応中かも @mnnekrashevich が 44 日前に担当しました。 オープンai_reviewed
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
ydb-platform/ydb-java-sdk#621 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
ydb-platform/ydb-java-sdk#573 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
ydb-platform/ydb-java-sdk#553 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
ydb-platform/ydb-java-sdk の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 61/100
Vakore/ZappierGames#162 ·
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
[Bug] Lock owned by another client (e.g. Text app) cannot be unlocked from the app対応中かも @falkloewert が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug grammar sev-0
難易度 1/5 1時間未満 初心者へのやさしさ 86/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100