mandrel icon indicating copy to clipboard operation
mandrel copied to clipboard

[CI] Enable assertions

Open zakkak opened this issue 3 months ago • 4 comments

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

zakkak avatar Aug 25 '25 11:08 zakkak

Depends on: https://github.com/oracle/graal/pull/12042

zakkak avatar Aug 26 '25 13:08 zakkak

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

jerboaa avatar Sep 23 '25 17:09 jerboaa

LogContext related issue tracked in https://github.com/quarkusio/quarkus/issues/50467

vertx related issue tracked in https://github.com/quarkusio/quarkus/issues/50469

zakkak avatar Oct 08 '25 10:10 zakkak

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.

github-actions[bot] avatar Nov 08 '25 00:11 github-actions[bot]

After #911 we should perhaps revisit this one (perhaps as a separate job) to set the additional build args to enable assertions?

jerboaa avatar Nov 18 '25 13:11 jerboaa