Building AOT cache fails

XMLWordPrintable

      ADDITIONAL SYSTEM INFORMATION :
      Property settings:
          file.encoding = UTF-8
          file.separator = /
          java.class.path = .
          java.class.version = 69.0
          java.home = /usr/lib/jvm/java-25-openjdk-amd64
          java.io.tmpdir = /tmp
          java.library.path = /usr/java/packages/lib
              /usr/lib/x86_64-linux-gnu/jni
              /lib/x86_64-linux-gnu
              /usr/lib/x86_64-linux-gnu
              /usr/lib/jni
              /lib
              /usr/lib
          java.runtime.name = OpenJDK Runtime Environment
          java.runtime.version = 25.0.2+10-Ubuntu-124.04
          java.specification.name = Java Platform API Specification
          java.specification.vendor = Oracle Corporation
          java.specification.version = 25
          java.vendor = Ubuntu
          java.vendor.url = https://ubuntu.com/
          java.vendor.url.bug = https://bugs.launchpad.net/ubuntu/+source/openjdk-25
          java.version = 25.0.2
          java.version.date = 2026-01-20
          java.vm.compressedOopsMode = Zero based
          java.vm.info = mixed mode, sharing
          java.vm.name = OpenJDK 64-Bit Server VM
          java.vm.specification.name = Java Virtual Machine Specification
          java.vm.specification.vendor = Oracle Corporation
          java.vm.specification.version = 25
          java.vm.vendor = Ubuntu
          java.vm.version = 25.0.2+10-Ubuntu-124.04
          jdk.debug = release
          line.separator = \n
          native.encoding = UTF-8
          os.arch = amd64
          os.name = Linux
          os.version = 6.14.0-37-generic
          path.separator = :
          stderr.encoding = UTF-8
          stdin.encoding = UTF-8
          stdout.encoding = UTF-8
          sun.arch.data.model = 64
          sun.boot.library.path = /usr/lib/jvm/java-25-openjdk-amd64/lib
          sun.cpu.endian = little
          sun.io.unicode.encoding = UnicodeLittle
          sun.java.launcher = SUN_STANDARD
          sun.jnu.encoding = UTF-8
          sun.management.compiler = HotSpot 64-Bit Tiered Compilers
          user.country = US
          user.dir = /home/tg/Downloads
          user.home = /home/tg
          user.language = en
          user.name = tg

      openjdk version "25.0.2" 2026-01-20
      OpenJDK Runtime Environment (build 25.0.2+10-Ubuntu-124.04)
      OpenJDK 64-Bit Server VM (build 25.0.2+10-Ubuntu-124.04, mixed mode, sharing)

      A DESCRIPTION OF THE PROBLEM :
      When the application uses too many lambda expressions and method handles and exceeds the limit of 32770, OpenJDK 25 AOT cache building process fails.


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. Start an application where it has at least 33k different types of lamba functions/Method Handles, in AOT record mode. (-XX:AOTMode=record -XX:AOTConfiguration=app.aotconf)
      2. Iterate through at least 33k lambda functions/Method Handles.
      3. Close the application
      4. Run AOT on cache create mode (-XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot)
      5. You will notice that cache building process will fail.

      ---------- BEGIN SOURCE ----------
      Building process to succeed
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Use -XX:+UnlockDiagnosticVMOptions -XX:-AOTInvokeDynamicLinking on cache building process.

      FREQUENCY :
      ALWAYS

            Assignee:
            EL Haimer Aymane
            Reporter:
            Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: