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

[lworld] MOAT with --enable-preview crashes

XMLWordPrintable

      The MOAT collections test crashes with --enable-preview.
      In the creation of the substitutable method handles, it incorrectly uses Unsafe.

      --enable-preview will not be enabled for MOAT until the problem can be found.

      From the log file:

      Current thread (0x000000013c049600): JavaThread "MainThread" [_thread_in_vm, id=43267, stack(0x000000016e254000,0x0000000
      16e457000) (2060K)]

      Stack: [0x000000016e254000,0x000000016e457000], sp=0x000000016e455010, free space=2052k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.dylib+0xa89ec0] Unsafe_ValueHeaderSize(JNIEnv_*, _jobject*, _jclass*)+0x114
      j jdk.internal.misc.Unsafe.valueHeaderSize(Ljava/lang/Class;)J+0 java.base@25-lworld5ea
      j jdk.internal.value.LayoutIteration.computeElementGetters(Ljava/lang/Class;)Ljava/util/List;+47 java.base@25-lworld5ea
      j jdk.internal.value.LayoutIteration$1.computeValue(Ljava/lang/Class;)Ljava/util/List;+1 java.base@25-lworld5ea
      j jdk.internal.value.LayoutIteration$1.computeValue(Ljava/lang/Class;)Ljava/lang/Object;+2 java.base@25-lworld5ea
      j java.lang.ClassValue.getFromHashMap(Ljava/lang/Class;)Ljava/lang/Object;+29 java.base@25-lworld5ea
      j java.lang.ClassValue.getFromBackup([Ljava/lang/ClassValue$Entry;Ljava/lang/Class;)Ljava/lang/Object;+17 java.base@25-lworld5ea
      j java.lang.ClassValue.get(Ljava/lang/Class;)Ljava/lang/Object;+27 java.base@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods$MethodHandleBuilder.valueTypeFields(Ljava/lang/Class;)Ljava/util/List;+4 java.base@25-lwo
      rld5ea
      j java.lang.runtime.ValueObjectMethods$MethodHandleBuilder.<init>(Ljava/lang/Class;Ljava/util/Deque;Ljava/util/Map;)V+40 java.ba
      se@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods$MethodHandleBuilder.lambda$detectCycles$0(Ljava/lang/Class;Ljava/util/Deque;Ljava/lang/Cl
      ass;)Ljava/lang/runtime/ValueObjectMethods$MethodHandleBuilder;+10 java.base@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods$MethodHandleBuilder$$Lambda+0x000006000100ac48.apply(Ljava/lang/Object;)Ljava/lang/Object
      ;+16 java.base@25-lworld5ea
      j java.util.HashMap.computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;+202 java.base@25-lworld5e
      a
      j java.lang.runtime.ValueObjectMethods$MethodHandleBuilder.detectCycles()V+187 java.base@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods$MethodHandleBuilder.build()Ljava/lang/runtime/ValueObjectMethods$MethodHandleBuilder;+63
      java.base@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods$1.computeValue(Ljava/lang/Class;)Ljava/lang/runtime/ValueObjectMethods$MethodHandleBuilde
      r;+21 java.base@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods$1.computeValue(Ljava/lang/Class;)Ljava/lang/Object;+2 java.base@25-lworld5ea
      j java.lang.ClassValue.getFromHashMap(Ljava/lang/Class;)Ljava/lang/Object;+29 java.base@25-lworld5ea
      j java.lang.ClassValue.getFromBackup([Ljava/lang/ClassValue$Entry;Ljava/lang/Class;)Ljava/lang/Object;+17 java.base@25-lworld5ea
      j java.lang.ClassValue.get(Ljava/lang/Class;)Ljava/lang/Object;+27 java.base@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods$MethodHandleBuilder.valueTypeEquals(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;+4 j
      ava.base@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods$2.computeValue(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;+1 java.base@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods$2.computeValue(Ljava/lang/Class;)Ljava/lang/Object;+2 java.base@25-lworld5ea
      j java.lang.ClassValue.getFromHashMap(Ljava/lang/Class;)Ljava/lang/Object;+29 java.base@25-lworld5ea
      j java.lang.ClassValue.getFromBackup([Ljava/lang/ClassValue$Entry;Ljava/lang/Class;)Ljava/lang/Object;+17 java.base@25-lworld5ea
      j java.lang.ClassValue.get(Ljava/lang/Class;)Ljava/lang/Object;+27 java.base@25-lworld5ea
      j java.lang.runtime.ValueObjectMethods.substitutableInvoker(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;+23 java.base@25-lw
      orld5ea
      j java.lang.runtime.ValueObjectMethods.isSubstitutable(Ljava/lang/Object;Ljava/lang/Object;)Z+91 java.base@25-lworld5ea
      v ~StubRoutines::call_stub 0x00000001164e0154
      V [libjvm.dylib+0x50af08] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x450
      V [libjvm.dylib+0x4fcc70] InterpreterRuntime::is_substitutable(JavaThread*, oopDesc*, oopDesc*)+0x2c4
      j java.util.HashMap.removeNode(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/util/HashMap$Node;+58 java.base@25-lworld5ea
      j java.util.HashMap.remove(Ljava/lang/Object;)Ljava/lang/Object;+9 java.base@25-lworld5ea
      j java.util.HashSet.remove(Ljava/lang/Object;)Z+5 java.base@25-lworld5ea
      j MOAT$NewAbstractSet.remove(Ljava/lang/Object;)Z+5
      j MOAT.supportsAdd(Ljava/util/Collection;)Z+48
      j MOAT.testCollection1(Ljava/util/Collection;)V+25
      j MOAT.testCollection(Ljava/util/Collection;)V+1
      j MOAT.realMain([Ljava/lang/String;)V+17
      j MOAT.main([Ljava/lang/String;)V+1
      j java.lang.invoke.LambdaForm$DMH+0x0000060001040c00.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base@25-lworld5
      ea
      j java.lang.invoke.LambdaForm$MH+0x0000060001043000.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Obj
      ect;+33 java.base@25-lworld5ea
      j java.lang.invoke.Invokers$Holder.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava
      /lang/Object;+20 java.base@25-lworld5ea
      j jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.ba
      se@25-lworld5ea
      j jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base@2
      5-lworld5ea
      j java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base@25-lworld5ea
      j com.sun.javatest.regtest.agent.MainWrapper$MainTask.run()V+134
      j java.lang.Thread.runWith(Ljava/lang/Object;Ljava/lang/Runnable;)V+5 java.base@25-lworld5ea
      j java.lang.Thread.run()V+19 java.base@25-lworld5ea
      v ~StubRoutines::call_stub 0x00000001164e0154
      V [libjvm.dylib+0x50af08] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x450
      V [libjvm.dylib+0x509db8] JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, Symbol*, JavaCallArguments*, JavaThread*)+0x164
      V [libjvm.dylib+0x509e84] JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, JavaThread*)+0x64
      V [libjvm.dylib+0x5e1454] thread_entry(JavaThread*, JavaThread*)+0x9c

            rriggs Roger Riggs
            rriggs Roger Riggs
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: