Create a new session on closing of another can create deadlock
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
Comienza rastreando la creación de sesiones y el comportamiento de espera a través de tech.ydb.table.impl.pool.SessionPool, WaitingQueue, BaseSession y tech.ydb.core.impl.pool.GrpcChannel, usando el stack trace proporcionado como punto de entrada. Reproduce o aísla el caso en el que crear una sesión mientras otra se cierra provoca un deadlock y, después, verifica que las operaciones del grupo de sesiones se completen sin bloquearse entre sí.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
"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)
- Lenguaje dominante
- Java
- Estrellas
- 53
- Forks
- 41
- Merge medio
- 1 d 13 h
- PR fusionados (30 d)
- 19
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ydb-platform/ydb-java-sdk
-
Java SDK: `describeTable()` не возвращает JSON-индексыPosiblemente ocupada @vgvoleg la tomó hace 4 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
ydb-platform/ydb-java-sdk#756 ·
Los mantenedores suelen responder en 1 día
-
feat: Manage table attributesAbiertoenhancement feature-parity
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
ydb-platform/ydb-java-sdk#651 ·
Los mantenedores suelen responder en 1 día
-
bug: "Sent message larger than max" error is retryablePosiblemente ocupada @mnnekrashevich la tomó hace 39 días. Abiertoai_reviewed
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
ydb-platform/ydb-java-sdk#621 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Batching writes to topicAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
ydb-platform/ydb-java-sdk#573 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Topic API control event orderingAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
ydb-platform/ydb-java-sdk#553 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de ydb-platform/ydb-java-sdk
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Flight SQL JDBC parses boolean properties case-sensitively, silently disabling TLS for useEncryption=TRUEPosiblemente ocupada @Arawoof06 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
apache/arrow-java#1357 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
apache/rocketmq-dashboard#6610 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
MetricsHub/metricshub-community#1396 ·
Los mantenedores suelen responder en 1 día
-
L: java:gradle L: java:maven L: ruby:bundler T: bug 🐞
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
dependabot/dependabot-core#16547 ·
Los mantenedores suelen responder en 1 día