Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Create a new session on closing of another can create deadlock

オープン
#474 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

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

調査の方向性

まず、提供されたスタックトレースを入口として、tech.ydb.table.impl.pool.SessionPool、WaitingQueue、BaseSession、tech.ydb.core.impl.pool.GrpcChannel を通じたセッション作成と待機動作を追跡します。別のセッションがクローズ中にセッションを作成するとデッドロックが発生するケースを再現または切り分け、その後、セッションプールの操作が互いにブロックすることなく完了することを確認します。

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

説明

bug high-priority
"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

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ydb-platform/ydb-java-sdk のほかの issue

ydb-platform/ydb-java-sdk の issue をすべて見る

似ている issue

Java の issue をもっと見る

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

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