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

XMLWordPrintable

    • b04

        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);

              Assignee:
              Yudi Zheng
              Reporter:
              Douglas Simon
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: