googleapis / googleapis/google-cloud-java

[java-spanner-jdbc] Enabling useVirtualGrpcTransportThreads causes a virtual thread pinning issue.

Aperta
#12,276 0 commenti 0 reazioni 1 assegnatario Rivendicata da @olavloite Vedi su GitHub
api: spanner
Lingua principale
Java
Stelle
2.1k
Fork
1.2k
Merge medio
1g 23h
PR unite (30g)
154

Descrizione

Thanks for stopping by to let us know something could be better!

**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response.

Please run down the following list and make sure you've tried the usual "quick fixes":

- Search the issues already opened: https://github.com/googleapis/java-spanner-jdbc/issues
- Check for answers on StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform

If you are still having issues, please include as much information as possible:

#### Environment details

1. Specify the API at the beginning of the title. For example, "BigQuery: ...").
General, Core, and Other are also allowed as types
2. OS type and version:
3. Java version: JDK 21
4. version(s): google-cloud-spanner-jdbc : 2.32.0

#### Steps to reproduce

1. useVirtualGrpcTransportThreads.
Example : jdbc:cloudspanner:/projects/nv-local/instances/test-instance/databases/trades?autoConfigEmulator=true;useVirtualThreads=true;numchannels=20;useVirtualGrpcTransportThreads=true
2. ?

#### Code example

```java
// example
```

#### Stack trace
Thread[#67,ForkJoinPool-1-worker-2,5,CarrierThreads]
java.base/java.lang.VirtualThread$VThreadContinuation.onPinned(VirtualThread.java:183)
java.base/jdk.internal.vm.Continuation.onPinned0(Continuation.java:393)
java.base/java.lang.VirtualThread.park(VirtualThread.java:582)
java.base/java.lang.System$2.parkVirtualThread(System.java:2643)
java.base/jdk.internal.misc.VirtualThreads.park(VirtualThreads.java:54)
**java.base/java.util.concurrent.locks.LockSupport.park(LockSupport.java:219)**
**com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:569)**
com.google.cloud.spanner.spi.v1.GapicSpannerRpc.get(GapicSpannerRpc.java:1975)
com.google.cloud.spanner.spi.v1.GapicSpannerRpc.beginTransaction(GapicSpannerRpc.java:1840)
com.google.cloud.spanner.AbstractReadContext$MultiUseReadOnlyTransaction.initTransactionInternal(AbstractReadContext.java:464)
com.google.cloud.spanner.AbstractReadContext$MultiUseReadOnlyTransaction.initTransaction(AbstractReadContext.java:455) <== monitors:1
com.google.cloud.spanner.AbstractReadContext$MultiUseReadOnlyTransaction.beforeReadOrQuery(AbstractReadContext.java:379)
com.google.cloud.spanner.AbstractReadContext.executeQueryInternalWithOptions(AbstractReadContext.java:799)
com.google.cloud.spanner.AbstractReadContext.executeQueryInternal(AbstractReadContext.java:669)
com.google.cloud.spanner.AbstractReadContext.executeQuery(AbstractReadContext.java:631)
com.google.cloud.spanner.connection.AbstractMultiUseTransaction.internalExecuteQuery(AbstractMultiUseTransaction.java:150)
com.google.cloud.spanner.connection.AbstractMultiUseTransaction.lambda$executeQueryAsync$0(AbstractMultiUseTransaction.java:141)
io.grpc.Context$2.call(Context.java:583)
com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:75)
com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
io.opentelemetry.context.Context.lambda$wrap$1(Context.java:241)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
java.base/java.lang.VirtualThread.run(VirtualThread.java:309)

#### External references such as API reference guides

- ?

#### Any additional information below

Following these steps guarantees the quickest resolution possible.

Thanks!

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.