[CI] Enable assertions
Opening as draft till upstream graal updates to JDK 26+12, as it currently fails with:
java.lang.NoSuchMethodError: java.lang.StringCoding.implEncodeISOArray([BI[BII)
at jdk.graal.compiler/jdk.graal.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.checkResolvable(InvocationPlugins.java:1119)
at jdk.graal.compiler/jdk.graal.compiler.nodes.graphbuilderconf.InvocationPlugins.register(InvocationPlugins.java:765)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.substitute.SubstitutionInvocationPlugins.register(SubstitutionInvocationPlugins.java:84)
at jdk.graal.compiler/jdk.graal.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register(InvocationPlugins.java:243)
at jdk.graal.compiler/jdk.graal.compiler.replacements.StandardGraphBuilderPlugins.registerStringCodingPlugins(StandardGraphBuilderPlugins.java:2624)
at jdk.graal.compiler/jdk.graal.compiler.replacements.StandardGraphBuilderPlugins.registerInvocationPlugins(StandardGraphBuilderPlugins.java:287)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.registerGraphBuilderPlugins(NativeImageGenerator.java:1492)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.initializeBigBang(NativeImageGenerator.java:1314)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:1111)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:567)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:534)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:548)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:761)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:163)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:111)
due to https://github.com/openjdk/jdk/commit/655dc516c22ac84fccee6b1fdc607c492465be6b#diff-42f5711b7bc39a45a6e647f8e09e69eab24556a282f272017d9b33b42911ee35
Closes https://github.com/graalvm/mandrel/issues/846
Depends on: https://github.com/oracle/graal/pull/12042
JDK 26+13 is available via labs by now. That isn't a blocker. We see a couple of assertions fired with this though. Example:
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:419)
at java.logging/java.util.logging.LogManager.ensureLogManagerInitialized(LogManager.java:366)
at java.logging/java.util.logging.LogManager.getLogManager(LogManager.java:398)
at java.logging/java.util.logging.Handler.<init>(Handler.java:69)
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:1169)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:341)
at java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:104)
at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:138)
at java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:546)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:496)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:707)
... 28 more
or
Caused by: java.lang.AssertionError
at io.netty.buffer.UnsafeByteBufUtil.setZero(UnsafeByteBufUtil.java:665)
at io.netty.buffer.PooledUnsafeDirectByteBuf.writeZero(PooledUnsafeDirectByteBuf.java:269)
at io.vertx.mssqlclient.impl.codec.PreLoginCommandCodec.encodeOption(PreLoginCommandCodec.java:56)
at io.vertx.mssqlclient.impl.codec.PreLoginCommandCodec.encode(PreLoginCommandCodec.java:38)
at io.vertx.mssqlclient.impl.codec.TdsMessageEncoder.write(TdsMessageEncoder.java:56)
at io.vertx.mssqlclient.impl.codec.TdsMessageEncoder.write(TdsMessageEncoder.java:47)
at io.netty.channel.CombinedChannelDuplexHandler.write(CombinedChannelDuplexHandler.java:346)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:891)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:875)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:984)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:868)
at io.vertx.sqlclient.impl.SocketConnectionBase.checkPending(SocketConnectionBase.java:275)
at io.vertx.sqlclient.impl.SocketConnectionBase.doSchedule(SocketConnectionBase.java:226)
at io.vertx.mssqlclient.impl.MSSQLSocketConnection.doSchedule(MSSQLSocketConnection.java:152)
at io.vertx.sqlclient.impl.SocketConnectionBase.lambda$schedule$3(SocketConnectionBase.java:204)
at io.vertx.core.impl.ContextImpl.emit(ContextImpl.java:342)
at io.vertx.core.impl.ContextImpl.emit(ContextImpl.java:335)
at io.vertx.core.impl.ContextInternal.emit(ContextInternal.java:200)
at io.vertx.sqlclient.impl.SocketConnectionBase.schedule(SocketConnectionBase.java:204)
at io.vertx.mssqlclient.impl.MSSQLSocketConnection.sendPreLoginMessage(MSSQLSocketConnection.java:72)
at io.vertx.mssqlclient.impl.MSSQLConnectionFactory.lambda$connectOrRedirect$2(MSSQLConnectionFactory.java:55)
at io.vertx.core.impl.future.Composition.onSuccess(Composition.java:38)
... 40 more
LogContext related issue tracked in https://github.com/quarkusio/quarkus/issues/50467
vertx related issue tracked in https://github.com/quarkusio/quarkus/issues/50469
This PR appears to be stale because it has been open 30 days with no activity. This PR will be closed in 7 days unless Stale label is removed, a new comment is made, or not-Stale label is added.
After #911 we should perhaps revisit this one (perhaps as a separate job) to set the additional build args to enable assertions?