- Notifications
You must be signed in to change notification settings - Fork3k
gRPC: Ignore already closed exception if server is already closed#50449
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Conversation
This comment has been minimized.
This comment has been minimized.
try { | ||
call.close(se.getStatus(),trailers); | ||
}catch (IllegalStateExceptionise) { | ||
if (!"Already closed".equals(ise.getMessage())) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I think it would deserve some explanations. Also, let's hope they don't change the error message....
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
I added some comments to the condition. If they ever change the error message, the exception would be shown in the logs and we'd probably revisit this :)
quarkus-botbot commentedOct 9, 2025 • edited by github-actionsbot
Loading Uh oh!
There was an error while loading.Please reload this page.
edited by github-actionsbot
Uh oh!
There was an error while loading.Please reload this page.
Status for workflow |
Status | Name | Step | Failures | Logs | Raw logs | Build scan |
---|---|---|---|---|---|---|
✔️ | JVM Integration Tests - JDK 17 | Logs | Raw logs | 🔍 | ||
✔️ | JVM Integration Tests - JDK 17 Windows | Logs | Raw logs | 🔍 | ||
✔️ | JVM Integration Tests - JDK 21 | Logs | Raw logs | 🔍 | ||
❌ | JVM Integration Tests - JDK 25 | Build | Failures | Logs | Raw logs | 🔍 |
Full information is available in theBuild summary check run.
You can consult theDevelocity build scans.
Failures
⚙️ JVM Integration Tests - JDK 25#
- Failing: integration-tests/virtual-threads/grpc-virtual-threads
📦 integration-tests/virtual-threads/grpc-virtual-threads
❌io.quarkus.grpc.example.streaming.VertxVirtualThreadTest.
-History -More details -Source on GitHub
org.junit.jupiter.engine.execution.ConditionEvaluationException: Failed to evaluate condition [io.quarkus.test.junit.QuarkusTestExtension]: Internal error: Test class was loaded with an unexpected classloader or the thread context classloader was incorrect.at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:197)at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:197)at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1693)at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:147)
❌io.quarkus.grpc.example.streaming.VertxVirtualThreadTest.testUnary
-History -More details -Source on GitHub
io.grpc.StatusRuntimeException: INTERNAL: Half-closed without a requestat io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:368)at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:349)at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:174)at io.grpc.testing.integration.TestServiceGrpc$TestServiceBlockingStub.unaryCall(TestServiceGrpc.java:277)at io.quarkus.grpc.example.streaming.VirtualThreadTestBase.testUnary(VirtualThreadTestBase.java:33)at java.base/java.lang.reflect.Method.invoke(Method.java:565)at io.quarkus.test.junit.QuarkusTestExtension.runExtensionMethod(QuarkusTestExtension.java:998)
Flaky tests -Develocity
⚙️ Gradle Tests - JDK 17 Windows
📦 integration-tests/gradle
❌io.quarkus.gradle.devmode.IncludedKotlinBuildDevModeTest.main
-History
Condition with Lambda expression in io.quarkus.test.devmode.util.DevModeClient was not fulfilled within 1 minutes 30 seconds.
-org.awaitility.core.ConditionTimeoutException
org.awaitility.core.ConditionTimeoutException: Condition with Lambda expression in io.quarkus.test.devmode.util.DevModeClient was not fulfilled within 1 minutes 30 seconds.at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:167)at org.awaitility.core.CallableCondition.await(CallableCondition.java:78)at org.awaitility.core.CallableCondition.await(CallableCondition.java:26)at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1160)at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:1129)at io.quarkus.test.devmode.util.DevModeClient.getHttpResponse(DevModeClient.java:164)at io.quarkus.gradle.devmode.QuarkusDevGradleTestBase.getHttpResponse(QuarkusDevGradleTestBase.java:165)
@gastaldi not the nicest, but I guess that's the best we can do? |
@alesj agreed, I wish they had a proper exception type we could catch |
That would prevent "Already closed" messages in log like#50447 (comment)