-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide infrastructure to debug QuarkusClassLoader lifecyle #41692
Conversation
@aloubyansky I isolated the logging infra in this PR so that we can get it in early as it's useful to debug and improve the situation (see work in #41607). I went for a |
...jects/bootstrap/core/src/main/java/io/quarkus/bootstrap/classloading/QuarkusClassLoader.java
Outdated
Show resolved
Hide resolved
...jects/bootstrap/core/src/main/java/io/quarkus/bootstrap/classloading/QuarkusClassLoader.java
Outdated
Show resolved
Hide resolved
@@ -131,14 +139,15 @@ public static boolean isResourcePresentAtRuntime(String resourcePath) { | |||
PLATFORM_CLASS_LOADER = cl; | |||
} | |||
|
|||
private boolean closed; | |||
private volatile short status; |
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.
Same here:
private volatile short status; | |
private volatile byte status; |
...jects/bootstrap/core/src/main/java/io/quarkus/bootstrap/classloading/QuarkusClassLoader.java
Outdated
Show resolved
Hide resolved
...jects/bootstrap/core/src/main/java/io/quarkus/bootstrap/classloading/QuarkusClassLoader.java
Show resolved
Hide resolved
You can log the constructor and close() calls by enabling debug logging for category `io.quarkus.bootstrap.classloading.QuarkusClassLoader.lifecycle`. You can log late accesses to closed class loaders by passing `-Dquarkus-log-access-to-closed-class-loaders` to your build command.
Status for workflow
|
Status | Name | Step | Failures | Logs | Raw logs | Build scan |
---|---|---|---|---|---|---|
✔️ | JVM Tests - JDK 17 | Logs | Raw logs | 🔍 | ||
✔️ | JVM Tests - JDK 21 | Logs | Raw logs | 🔍 | ||
✖ | JVM Tests - JDK 17 Windows | Build |
Failures | Logs | Raw logs | 🔍 |
✖ | MicroProfile TCKs Tests | Verify |
Failures | Logs | Raw logs | 🔍 |
Full information is available in the Build summary check run.
You can consult the Develocity build scans.
Failures
⚙️ JVM Tests - JDK 17 Windows #
- Failing: integration-tests/rest-client
📦 integration-tests/rest-client
✖ Failed to execute goal uk.co.automatictester:truststore-maven-plugin:3.0.0:generate-truststore (self-signed-truststore) on project quarkus-integration-test-rest-client: Execution self-signed-truststore of goal uk.co.automatictester:truststore-maven-plugin:3.0.0:generate-truststore failed: java.net.ConnectException: Connection timed out: connect
⚙️ MicroProfile TCKs Tests #
- Failing: tcks/microprofile-opentelemetry
📦 tcks/microprofile-opentelemetry
✖ org.eclipse.microprofile.telemetry.tracing.tck.async.MpRestClientAsyncTest.testIntegrationWithMpRestClient
- History - More details - Source on GitHub
java.util.concurrent.RejectedExecutionException: event executor terminated
at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:931)
at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:350)
at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:343)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:833)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:824)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:814)
at io.vertx.core.impl.EventLoopExecutor.execute(EventLoopExecutor.java:35)
Flaky tests - Develocity
⚙️ JVM Tests - JDK 21
📦 extensions/amazon-lambda/deployment
✖ io.quarkus.amazon.lambda.deployment.testing.InputCollectionOutputCollectionLambdaTest.requestHandler_InputCollectionInputPerson_OutputCollectionOutputPerson
- History
1 expectation failed. JSON path doesn't match. Expected: a collection containing map containing ["outputname"->"Chris"] Actual: <[{outputname=Fred}]>
-java.lang.AssertionError
java.lang.AssertionError:
1 expectation failed.
JSON path doesn't match.
Expected: a collection containing map containing ["outputname"->"Chris"]
Actual: <[{outputname=Fred}]>
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
⚙️ JVM Tests - JDK 17 Windows
📦 extensions/amazon-lambda/deployment
✖ io.quarkus.amazon.lambda.deployment.testing.InputCollectionOutputCollectionLambdaTest.requestHandler_InputCollectionInputPerson_OutputCollectionOutputPerson
- History
1 expectation failed. JSON path doesn't match. Expected: a collection containing map containing ["outputname"->"Chris"] Actual: <[{outputname=Fred}]>
-java.lang.AssertionError
java.lang.AssertionError:
1 expectation failed.
JSON path doesn't match.
Expected: a collection containing map containing ["outputname"->"Chris"]
Actual: <[{outputname=Fred}]>
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
You can log the constructor and close() calls by enabling debug logging for category
io.quarkus.bootstrap.classloading.QuarkusClassLoader.lifecycle
.You can log late accesses to closed class loaders by passing
-Dquarkus-log-access-to-closed-class-loaders
to your build command.