Skip to content

QuarkusClassLoader (testing classloader) triggers virtual thread pinningΒ #49904

@Sanne

Description

@Sanne

Describe the bug

We're having reports on zulip πŸ’¬ stating that the use of synchronized withing QuarkusClassLoader is causing issues with virtual threads.
(QuarkusClassLoader is not the classloader used in "production mode", but it's used in dev-mode and tests)

AFAIR the production classloader had been fixed last year so it should be possible to align the strategies; however the previous fix might not be fully complete as there are some details to flesh out still; see #42874

* Pinning event captured:
        jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(jdk.internal.loader.BuiltinClassLoader.java:590)
        jdk.internal.loader.BuiltinClassLoader.loadClass(jdk.internal.loader.BuiltinClassLoader.java:578)
        java.lang.ClassLoader.loadClass(java.lang.ClassLoader.java:490)
        io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(io.quarkus.bootstrap.classloading.QuarkusClassLoader.java:535)
        io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(io.quarkus.bootstrap.classloading.QuarkusClassLoader.java:524)
        io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(io.quarkus.bootstrap.classloading.QuarkusClassLoader.java:535)
        io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(io.quarkus.bootstrap.classloading.QuarkusClassLoader.java:524)

Expected behavior

No response

Actual behavior

No response

How to Reproduce?

No response

Output of uname -a or ver

No response

Output of java -version

No response

Quarkus version or git rev

No response

Build tool (ie. output of mvnw --version or gradlew --version)

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/virtual-threadsIssue related to Java's Virtual Threadskind/bugSomething isn't working

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions