-
Notifications
You must be signed in to change notification settings - Fork 315
Closed
Labels
comp: native-imageGraalVM native-imageGraalVM native-imagetype: bugBug report and fixBug report and fix
Milestone
Description
Description
I am attempting to build a native image for my Spring Boot application using GraalVM, but I am encountering initialization issues related to classes during the build time. These issues have arisen after upgrading Datadog's Java APM agent from version 1.40.0 to 1.41.0.
When building the native image, I receive the following error messages:
Classes that should be initialized at runtime were initialized during image building:
- datadog.trace.api.Functions$PrefixJoin was unintentionally initialized at build time. To investigate further, use --trace-class-initialization=datadog.trace.api.Functions$PrefixJoin.
- datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator was unintentionally initialized at build time. To investigate further, use --trace-class-initialization=datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator.
- datadog.trace.bootstrap.instrumentation.decorator.AsyncResultDecorator was unintentionally initialized at build time. To investigate further, use --trace-class-initialization=datadog.trace.bootstrap.instrumentation.decorator.AsyncResultDecorator.
The setup details are as follows:
Java Version: 17
Spring Boot Version: 3.3.5
GraalVM Version: 17.0.11
Maven Plugin Configuration:
I am using Maven to build the project, and the following is my plugin configuration in the pom.xml file:
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<configuration>
<buildArgs>
<buildArg>-J-javaagent:dd-java-agent.jar</buildArg>
<buildArg>
--initialize-at-build-time=org.slf4j.helpers,datadog.okhttp3.internal.platform,net.logstash.logback
</buildArg>
<buildArg>--initialize-at-run-time=net.logstash.logback.appender.LogstashTcpSocketAppender
</buildArg>
<buildArg>--link-at-build-time=net.logstash.logback.appender</buildArg>
<buildArg>-H:+ReportExceptionStackTraces</buildArg>
<buildArg>-H:+MultiThreaded</buildArg>
<buildArg>-H:IncludeResources=.*\.xml</buildArg>
</buildArgs>
<imageName>${build.finalName}</imageName>
</configuration>
</plugin>Additional Errors:
Error: Classes that should be initialized at run time got initialized during image building:
datadog.trace.bootstrap.instrumentation.decorator.AsyncResultDecorator was unintentionally initialized at build time. org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService caused initialization of this class with the following trace:
at datadog.trace.bootstrap.instrumentation.decorator.AsyncResultDecorator.<clinit>(AsyncResultDecorator.java:19)
at datadog.trace.instrumentation.reactor.core.ReactorAsyncResultSupportExtension.<clinit>(ReactorAsyncResultSupportExtension.java:11)
at reactor.core.publisher.MonoJust.<init>(MonoJust.java:36)
at reactor.core.publisher.Mono.just(Mono.java:754)
at org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService.<clinit>(HandshakeWebSocketService.java:72)
datadog.trace.api.Functions$PrefixJoin was unintentionally initialized at build time. org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService caused initialization of this class with the following trace:
at datadog.trace.api.Functions$PrefixJoin.<clinit>(Functions.java:102)
at datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator.<clinit>(BaseDecorator.java:37)
at datadog.trace.instrumentation.reactor.core.ReactorAsyncResultSupportExtension.<clinit>(ReactorAsyncResultSupportExtension.java:11)
at reactor.core.publisher.MonoJust.<init>(MonoJust.java:36)
at reactor.core.publisher.Mono.just(Mono.java:754)
at org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService.<clinit>(HandshakeWebSocketService.java:72)
datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator was unintentionally initialized at build time. org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService caused initialization of this class with the following trace:
at datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator.<clinit>(BaseDecorator.java:23)
at datadog.trace.instrumentation.reactor.core.ReactorAsyncResultSupportExtension.<clinit>(ReactorAsyncResultSupportExtension.java:11)
at reactor.core.publisher.MonoJust.<init>(MonoJust.java:36)
at reactor.core.publisher.Mono.just(Mono.java:754)
at org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService.<clinit>(HandshakeWebSocketService.java:72)
com.oracle.svm.core.util.UserError$UserException: Classes that should be initialized at run time got initialized during image building:
datadog.trace.bootstrap.instrumentation.decorator.AsyncResultDecorator was unintentionally initialized at build time. org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService caused initialization of this class with the following trace:
at datadog.trace.bootstrap.instrumentation.decorator.AsyncResultDecorator.<clinit>(AsyncResultDecorator.java:19)
at datadog.trace.instrumentation.reactor.core.ReactorAsyncResultSupportExtension.<clinit>(ReactorAsyncResultSupportExtension.java:11)
at reactor.core.publisher.MonoJust.<init>(MonoJust.java:36)
at reactor.core.publisher.Mono.just(Mono.java:754)
at org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService.<clinit>(HandshakeWebSocketService.java:72)
datadog.trace.api.Functions$PrefixJoin was unintentionally initialized at build time. org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService caused initialization of this class with the following trace:
at datadog.trace.api.Functions$PrefixJoin.<clinit>(Functions.java:102)
at datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator.<clinit>(BaseDecorator.java:37)
at datadog.trace.instrumentation.reactor.core.ReactorAsyncResultSupportExtension.<clinit>(ReactorAsyncResultSupportExtension.java:11)
at reactor.core.publisher.MonoJust.<init>(MonoJust.java:36)
at reactor.core.publisher.Mono.just(Mono.java:754)
at org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService.<clinit>(HandshakeWebSocketService.java:72)
datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator was unintentionally initialized at build time. org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService caused initialization of this class with the following trace:
at datadog.trace.bootstrap.instrumentation.decorator.BaseDecorator.<clinit>(BaseDecorator.java:23)
at datadog.trace.instrumentation.reactor.core.ReactorAsyncResultSupportExtension.<clinit>(ReactorAsyncResultSupportExtension.java:11)
at reactor.core.publisher.MonoJust.<init>(MonoJust.java:36)
at reactor.core.publisher.Mono.just(Mono.java:754)
at org.springframework.web.reactive.socket.server.support.HandshakeWebSocketService.<clinit>(HandshakeWebSocketService.java:72)
Metadata
Metadata
Assignees
Labels
comp: native-imageGraalVM native-imageGraalVM native-imagetype: bugBug report and fixBug report and fix