Skip to content

[Native Image] debug info for proxy looks corrupted with GraalVM CE 24+36.1 #11465

@minamoto79

Description

@minamoto79

Describe the Issue

after compilation Spring Petclinic with maven

docker run --rm --entrypoint= -v $(pwd):/project -v $(pwd)/_m2:/root/.m2 -w /project oracle-graalvm:24 mvn -D"checkstyle.skip"=true -P native package

0x0231e5ea:   DW_TAG_union_type
                DW_AT_name      ("org.springframework.samples.petclinic.owner.OwnerRepository")

0x0231e5ef:     DW_TAG_member
                  DW_AT_name    ("_jdk.proxy4.$Proxy/sa0693e1d")
                  DW_AT_type    (0x8da7a24f0ccbbcfa)
                  DW_AT_accessibility   (DW_ACCESS_public)

0x0231e5fd:     DW_TAG_member
                  DW_AT_name    ("_jdk.proxy4.$Proxy/s8c025537")
                  DW_AT_type    (0xbac72fd101c9fc1c)
                  DW_AT_accessibility   (DW_ACCESS_public)

0x0231e60b:     NULL

0x0231e60c:   NULL

DW_AT_type looks wierd.

Using the latest version of GraalVM can resolve many issues.

GraalVM Version

openjdk 24 2025-03-18
OpenJDK Runtime Environment GraalVM CE 24+36.1 (build 24+36-jvmci-b01)
OpenJDK 64-Bit Server VM GraalVM CE 24+36.1 (build 24+36-jvmci-b01, mixed mode, sharing)

Operating System and Version

Linux 3d9b6fd6317f 6.10.14-linuxkit #1 SMP Sat May 17 08:28:57 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux

Build Command

/usr/lib64/graalvm/graalvm-community-java24/bin/native-image -cp /project/target/classes:/root/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/3.3.4/spring-boot-starter-actuator-3.3.4.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter/3.3.4/spring-boot-starter-3.3.4.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-logging/3.3.4/spring-boot-starter-logging-3.3.4.jar:/root/.m2/repository/ch/qos/logback/logback-classic/1.5.8/logback-classic-1.5.8.jar:/root/.m2/repository/ch/qos/logback/logback-core/1.5.8/logback-core-1.5.8.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.23.1/log4j-to-slf4j-2.23.1.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-api/2.23.1/log4j-api-2.23.1.jar:/root/.m2/repository/org/slf4j/jul-to-slf4j/2.0.16/jul-to-slf4j-2.0.16.jar:/root/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/root/.m2/repository/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar:/root/.m2/repository/org/springframework/boot/spring-boot-actuator-autoconfigure/3.3.4/spring-boot-actuator-autoconfigure-3.3.4.jar:/root/.m2/repository/org/springframework/boot/spring-boot-actuator/3.3.4/spring-boot-actuator-3.3.4.jar:/root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.17.2/jackson-datatype-jsr310-2.17.2.jar:/root/.m2/repository/io/micrometer/micrometer-observation/1.13.4/micrometer-observation-1.13.4.jar:/root/.m2/repository/io/micrometer/micrometer-commons/1.13.4/micrometer-commons-1.13.4.jar:/root/.m2/repository/io/micrometer/micrometer-jakarta9/1.13.4/micrometer-jakarta9-1.13.4.jar:/root/.m2/repository/io/micrometer/micrometer-core/1.13.4/micrometer-core-1.13.4.jar:/root/.m2/repository/org/hdrhistogram/HdrHistogram/2.2.2/HdrHistogram-2.2.2.jar:/root/.m2/repository/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-cache/3.3.4/spring-boot-starter-cache-3.3.4.jar:/root/.m2/repository/org/springframework/spring-context-support/6.1.13/spring-context-support-6.1.13.jar:/root/.m2/repository/org/springframework/spring-beans/6.1.13/spring-beans-6.1.13.jar:/root/.m2/repository/org/springframework/spring-context/6.1.13/spring-context-6.1.13.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/3.3.4/spring-boot-starter-data-jpa-3.3.4.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-aop/3.3.4/spring-boot-starter-aop-3.3.4.jar:/root/.m2/repository/org/springframework/spring-aop/6.1.13/spring-aop-6.1.13.jar:/root/.m2/repository/org/aspectj/aspectjweaver/1.9.22.1/aspectjweaver-1.9.22.1.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/3.3.4/spring-boot-starter-jdbc-3.3.4.jar:/root/.m2/repository/com/zaxxer/HikariCP/5.1.0/HikariCP-5.1.0.jar:/root/.m2/repository/org/springframework/spring-jdbc/6.1.13/spring-jdbc-6.1.13.jar:/root/.m2/repository/org/hibernate/orm/hibernate-core/6.5.3.Final/hibernate-core-6.5.3.Final.jar:/root/.m2/repository/jakarta/persistence/jakarta.persistence-api/3.1.0/jakarta.persistence-api-3.1.0.jar:/root/.m2/repository/jakarta/transaction/jakarta.transaction-api/2.0.1/jakarta.transaction-api-2.0.1.jar:/root/.m2/repository/org/jboss/logging/jboss-logging/3.5.3.Final/jboss-logging-3.5.3.Final.jar:/root/.m2/repository/org/hibernate/common/hibernate-commons-annotations/6.0.6.Final/hibernate-commons-annotations-6.0.6.Final.jar:/root/.m2/repository/io/smallrye/jandex/3.1.2/jandex-3.1.2.jar:/root/.m2/repository/com/fasterxml/classmate/1.7.0/classmate-1.7.0.jar:/root/.m2/repository/net/bytebuddy/byte-buddy/1.14.19/byte-buddy-1.14.19.jar:/root/.m2/repository/org/glassfish/jaxb/jaxb-runtime/4.0.5/jaxb-runtime-4.0.5.jar:/root/.m2/repository/org/glassfish/jaxb/jaxb-core/4.0.5/jaxb-core-4.0.5.jar:/root/.m2/repository/org/eclipse/angus/angus-activation/2.0.2/angus-activation-2.0.2.jar:/root/.m2/repository/org/glassfish/jaxb/txw2/4.0.5/txw2-4.0.5.jar:/root/.m2/repository/com/sun/istack/istack-commons-runtime/4.1.2/istack-commons-runtime-4.1.2.jar:/root/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/root/.m2/repository/org/antlr/antlr4-runtime/4.13.0/antlr4-runtime-4.13.0.jar:/root/.m2/repository/org/springframework/data/spring-data-jpa/3.3.4/spring-data-jpa-3.3.4.jar:/root/.m2/repository/org/springframework/data/spring-data-commons/3.3.4/spring-data-commons-3.3.4.jar:/root/.m2/repository/org/springframework/spring-orm/6.1.13/spring-orm-6.1.13.jar:/root/.m2/repository/org/springframework/spring-tx/6.1.13/spring-tx-6.1.13.jar:/root/.m2/repository/org/slf4j/slf4j-api/2.0.16/slf4j-api-2.0.16.jar:/root/.m2/repository/org/springframework/spring-aspects/6.1.13/spring-aspects-6.1.13.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-web/3.3.4/spring-boot-starter-web-3.3.4.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-json/3.3.4/spring-boot-starter-json-3.3.4.jar:/root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.17.2/jackson-datatype-jdk8-2.17.2.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/3.3.4/spring-boot-starter-tomcat-3.3.4.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.30/tomcat-embed-core-10.1.30.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.30/tomcat-embed-websocket-10.1.30.jar:/root/.m2/repository/org/springframework/spring-web/6.1.13/spring-web-6.1.13.jar:/root/.m2/repository/org/springframework/spring-webmvc/6.1.13/spring-webmvc-6.1.13.jar:/root/.m2/repository/org/springframework/spring-expression/6.1.13/spring-expression-6.1.13.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-validation/3.3.4/spring-boot-starter-validation-3.3.4.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.30/tomcat-embed-el-10.1.30.jar:/root/.m2/repository/org/hibernate/validator/hibernate-validator/8.0.1.Final/hibernate-validator-8.0.1.Final.jar:/root/.m2/repository/jakarta/validation/jakarta.validation-api/3.0.2/jakarta.validation-api-3.0.2.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-thymeleaf/3.3.4/spring-boot-starter-thymeleaf-3.3.4.jar:/root/.m2/repository/org/thymeleaf/thymeleaf-spring6/3.1.2.RELEASE/thymeleaf-spring6-3.1.2.RELEASE.jar:/root/.m2/repository/org/thymeleaf/thymeleaf/3.1.2.RELEASE/thymeleaf-3.1.2.RELEASE.jar:/root/.m2/repository/org/attoparser/attoparser/2.0.7.RELEASE/attoparser-2.0.7.RELEASE.jar:/root/.m2/repository/org/unbescape/unbescape/1.1.6.RELEASE/unbescape-1.1.6.RELEASE.jar:/root/.m2/repository/org/springframework/spring-core/6.1.13/spring-core-6.1.13.jar:/root/.m2/repository/org/springframework/spring-jcl/6.1.13/spring-jcl-6.1.13.jar:/root/.m2/repository/com/h2database/h2/2.2.224/h2-2.2.224.jar:/root/.m2/repository/com/mysql/mysql-connector-j/8.3.0/mysql-connector-j-8.3.0.jar:/root/.m2/repository/org/postgresql/postgresql/42.7.4/postgresql-42.7.4.jar:/root/.m2/repository/org/checkerframework/checker-qual/3.42.0/checker-qual-3.42.0.jar:/root/.m2/repository/javax/cache/cache-api/1.1.1/cache-api-1.1.1.jar:/root/.m2/repository/com/github/ben-manes/caffeine/caffeine/3.1.8/caffeine-3.1.8.jar:/root/.m2/repository/com/google/errorprone/error_prone_annotations/2.21.1/error_prone_annotations-2.21.1.jar:/root/.m2/repository/org/webjars/npm/bootstrap/5.3.3/bootstrap-5.3.3.jar:/root/.m2/repository/org/webjars/npm/font-awesome/4.7.0/font-awesome-4.7.0.jar:/root/.m2/repository/org/springframework/boot/spring-boot/3.3.4/spring-boot-3.3.4.jar:/root/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.3.4/spring-boot-autoconfigure-3.3.4.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.17.2/jackson-databind-2.17.2.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.17.2/jackson-annotations-2.17.2.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.17.2/jackson-core-2.17.2.jar:/root/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.17.2/jackson-module-parameter-names-2.17.2.jar:/root/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/4.0.2/jakarta.xml.bind-api-4.0.2.jar:/root/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.3/jakarta.activation-api-2.1.3.jar -g --no-fallback -o /project/target/app-petclinic-3 -H:ConfigurationFileDirectories=/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/org.thymeleaf/thymeleaf-spring6/3.1.0.M2,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/org.hdrhistogram/HdrHistogram/2.1.12,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/org.hibernate.validator/hibernate-validator/7.0.4.Final,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/com.h2database/h2/2.1.210,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/org.apache.tomcat.embed/tomcat-embed-core/10.0.20,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/org.thymeleaf/thymeleaf/3.1.0.RC1,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/javax.cache/cache-api/1.1.1,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/com.fasterxml.jackson.core/jackson-databind/2.15.2,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/org.hibernate.orm/hibernate-core/6.5.0.Final,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/org.postgresql/postgresql/42.7.3,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/org.jboss.logging/jboss-logging/3.5.0.Final,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/org.glassfish.jaxb/jaxb-runtime/3.0.2,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/com.zaxxer/HikariCP/5.0.1,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/ch.qos.logback/logback-classic/1.4.9,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/com.mysql/mysql-connector-j/8.0.31,/project/target/graalvm-reachability-metadata/7c9867602b6e1b9359c63cd09f3d5aa598084c52/com.github.ben-manes.caffeine/caffeine/3.1.2 -O0 --native-compiler-options=-Og

Expected Behavior

DW_AT_type should have valid offset

Actual Behavior

0x0231e5ea:   DW_TAG_union_type
                DW_AT_name      ("org.springframework.samples.petclinic.owner.OwnerRepository")

0x0231e5ef:     DW_TAG_member
                  DW_AT_name    ("_jdk.proxy4.$Proxy/sa0693e1d")
                  DW_AT_type    (0x8da7a24f0ccbbcfa) <---
                  DW_AT_accessibility   (DW_ACCESS_public)

Steps to Reproduce

  1. clone https://github.com/belyaev-andrey/spring-petclinic/
  2. 'docker run --rm --entrypoint= -v $(pwd):/project -v $(pwd)/_m2:/root/.m2 -w /project oracle-graalvm:24 mvn -D"checkstyle.skip"=true -P native package'
  3. dwarfdump -i /Users/minamoto/IdeaProjects/spring-petclinic-belyaev/target/app-petclinic-3.debug | less +/"org.springframework.samples.petclinic.owner.OwnerRepository"

Additional Context

No response

Build Log Output and Error Messages

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions