Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8358686

CDS and AOT can cause buffer truncation warning even when logging is disabled

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P4 P4
    • 26
    • 25
    • hotspot

      We see the following console output when building libgraal with a debug JDK:

      Java HotSpot(TM) 64-Bit Server VM warning: outputStream::do_vsnprintf output truncated -- buffer length is 2000 bytes but 4276 bytes are needed.

      Inserting some debug code reveals that the truncated message is:

      Mismatched values for property jdk.module.addexports: com.oracle.svm.svm_enterprise,java.base/com.sun.crypto.provider=org.graalvm.nativeimage.builder,java.base/jdk.internal.access=org.graalvm.nativeimage.builder,java.base/jdk.internal.event=org.graalvm.nativeimage.builder,java.base/jdk.internal.foreign=org.graalvm.nativeimage.builder,java.base/jdk.internal.jimage=org.graalvm.nativeimage.driver,java.base/jdk.internal.loader=org.graalvm.nativeimage.builder,java.base/jdk.internal.logger=org.graalvm.nativeimage.builder,java.base/jdk.internal.misc=com.oracle.graal.graal_enterprise,java.base/jdk.internal.module=org.graalvm.nativeimage.base,java.base/jdk.internal.perf=org.graalvm.nativeimage.builder,java.base/jdk.internal.platform=org.graalvm.nativeimage.builder,java.base/jdk.internal.ref=org.graalvm.nativeimage.builder,java.base/jdk.internal.reflect=org.graalvm.nativeimage.builder,java.base/jdk.internal.util=org.graalvm.nativeimage.builder,java.base/jdk.internal.vm.annotation=org.graalvm.nativeimage.builder,java.base/jdk.internal.vm=org.graalvm.nativeimage.builder,java.base/jdk.internal=org.graalvm.nativeimage.builder,java.base/sun.invoke.util=org.graalvm.nativeimage.builder,java.base/sun.net.www=org.graalvm.nativeimage.builder,java.base/sun.net=org.graalvm.nativeimage.builder,java.base/sun.nio.ch=org.graalvm.nativeimage.builder,java.base/sun.reflect.annotation=org.graalvm.nativeimage.builder,java.base/sun.reflect.generics.factory=org.graalvm.nativeimage.builder,java.base/sun.reflect.generics.reflectiveObjects=org.graalvm.nativeimage.builder,java.base/sun.reflect.generics.repository=org.graalvm.nativeimage.builder,java.base/sun.reflect.generics.scope=org.graalvm.nativeimage.builder,java.base/sun.reflect.generics.tree=org.graalvm.nativeimage.builder,java.base/sun.security.jca=org.graalvm.nativeimage.builder,java.base/sun.security.provider=org.graalvm.nativeimage.builder,java.base/sun.security.ssl=org.graalvm.nativeimage.builder,java.base/sun.security.util=org.graalvm.nat

      This comes from MetaspaceShared::report_loading_error.

      It seems that no attempt to create the message should be made if both AOT and CDS logging are disabled:

      diff --git a/src/hotspot/share/cds/metaspaceShared.cpp b/src/hotspot/share/cds/metaspaceShared.cpp
      index 233e64c5e3e..c5bd7355e6b 100644
      --- a/src/hotspot/share/cds/metaspaceShared.cpp
      +++ b/src/hotspot/share/cds/metaspaceShared.cpp
      @@ -1288,6 +1288,10 @@ void MetaspaceShared::report_loading_error(const char* format, ...) {
         LogStream ls_cds(level, LogTagSetMapping<LOG_TAGS(cds)>::tagset());

         LogStream& ls = CDSConfig::new_aot_flags_used() ? ls_aot : ls_cds;
      + if (!ls.is_enabled()) {
      + return;
      + }
      +
         va_list ap;
         va_start(ap, format);

            yzheng Yudi Zheng
            dnsimon Douglas Simon
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: