Skip to content

Native compilation of the elytron-security-ldap, infinispan-client, infinispan-cache, and grpc-plain-text-gzip ITs fails when assertions are enabled #50467

@zakkak

Description

@zakkak

Describe the bug

Enabling assertions at native-image build time results in compilation failure for the elytron-security-ldap, infinispan-client, infinispan-cache, and grpc-plain-text-gzip integration test.

Expected behavior

Test should build and pass

Actual behavior

Test build fails with:

java.util.ServiceConfigurationError: java.nio.file.spi.FileSystemProvider: Provider org.apache.sshd.common.file.root.RootedFileSystemProvider could not be instantiated
	at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:586)
	at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:813)
	at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729)
	at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403)
	at java.base/java.nio.file.spi.FileSystemProvider.loadInstalledProviders(FileSystemProvider.java:156)
	at java.base/java.nio.file.spi.FileSystemProvider$1.run(FileSystemProvider.java:207)
	at java.base/java.nio.file.spi.FileSystemProvider$1.run(FileSystemProvider.java:204)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at java.base/java.nio.file.spi.FileSystemProvider.installedProviders(FileSystemProvider.java:204)
	at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:336)
	at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:288)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageClassLoaderSupport$LoadClassHandler.loadClassesFromPath(NativeImageClassLoaderSupport.java:668)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageClassLoaderSupport$LoadClassHandler.run(NativeImageClassLoaderSupport.java:628)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageClassLoaderSupport.loadAllClasses(NativeImageClassLoaderSupport.java:211)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.ImageClassLoader.loadAllClasses(ImageClassLoader.java:100)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:386)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:721)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:143)
	at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:98)
Caused by: java.util.ServiceConfigurationError: org.jboss.logmanager.LogContextInitializer: Provider io.quarkus.bootstrap.logging.InitialConfigurator could not be instantiated
	at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:586)
	at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:813)
	at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729)
	at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1403)
	at org.jboss.logmanager.LogContext.discoverDefaultInitializer0(LogContext.java:69)
	at org.jboss.logmanager.LogContext.discoverDefaultInitializer(LogContext.java:60)
	at org.jboss.logmanager.LogContext.<clinit>(LogContext.java:52)
	at org.slf4j.impl.Slf4jLoggerFactory.getLogger(Slf4jLoggerFactory.java:35)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:447)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)
	at org.apache.sshd.common.file.root.RootedFileSystemProvider.<init>(RootedFileSystemProvider.java:79)
	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
	at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789)
	... 18 more
Caused by: java.lang.AssertionError: Exception raised while reading logging configuration: java.lang.NullPointerException: Cannot invoke "org.jboss.logmanager.LogContextSelector.getLogContext()" because "org.jboss.logmanager.LogContext.logContextSelector" is null
	at java.logging/java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:452)
	at java.logging/java.util.logging.LogManager$2.run(LogManager.java:395)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
	at java.logging/java.util.logging.LogManager.ensureLogManagerInitialized(LogManager.java:383)
	at java.logging/java.util.logging.LogManager.getLogManager(LogManager.java:431)
	at java.logging/java.util.logging.Handler.<init>(Handler.java:55)
	at org.jboss.logmanager.ExtHandler.<init>(ExtHandler.java:79)
	at io.quarkus.bootstrap.logging.QuarkusDelayedHandler.<init>(QuarkusDelayedHandler.java:73)
	at io.quarkus.bootstrap.logging.QuarkusDelayedHandler.<init>(QuarkusDelayedHandler.java:70)
	at io.quarkus.bootstrap.logging.InitialConfigurator.<clinit>(InitialConfigurator.java:17)
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
	at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
	at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103)
	at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200)
	at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
	at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789)
	... 31 more

How to Reproduce?

./mvnw -pl integration-tests/elytron-security-ldap \
  -Dnative -Dnative.surefire.skip -Dformat.skip -Dno-descriptor-tests \
  clean package \
  -Dquarkus.native.additional-build-args-append=-ea,-esa,-J-ea,-J-esa

Output of uname -a or ver

No response

Output of java -version

21.0.8+9-LTS

Mandrel or GraalVM version (if different from Java)

MANDREL 23.1.8.0 JDK 21.0.8+9-LTS

Quarkus version or git rev

95f89bc

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

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions