-
Bug
-
Resolution: Fixed
-
P4
-
11, 12
-
b10
In a rarely taken path, JVMCI was using the wrong API to append an element to a GrowableArray. This results in an assertion failing in a fastdebug VM:
# Internal Error (/Users/graal/slave/e/main/graal-jvmci-8/src/share/vm/utilities/growableArray.hpp:265), pid=35423, tid=0x000000000000a903
# assert(0 <= i && i < _len) failed: illegal index
V [libjvm.dylib+0x939a17] VMError::report_and_die()+0x3df
V [libjvm.dylib+0x30efce] report_vm_error(char const*, int, char const*, char const*)+0x63
V [libjvm.dylib+0x5d06c3] GrowableArray<ScopeValue*>::at_put(int, ScopeValue* const&)+0x3b
V [libjvm.dylib+0x5cf6c8] c2v_iterateFrames(JNIEnv_*, _jobject*, _jobjectArray*, _jobjectArray*, int, _jobject*)+0x9ea
J 11245 jdk.vm.ci.hotspot.CompilerToVM.iterateFrames([Ljdk/vm/ci/meta/ResolvedJavaMethod;
The attachedJDK-8206947.patch file clearly shows the problem and fix.
# Internal Error (/Users/graal/slave/e/main/graal-jvmci-8/src/share/vm/utilities/growableArray.hpp:265), pid=35423, tid=0x000000000000a903
# assert(0 <= i && i < _len) failed: illegal index
V [libjvm.dylib+0x939a17] VMError::report_and_die()+0x3df
V [libjvm.dylib+0x30efce] report_vm_error(char const*, int, char const*, char const*)+0x63
V [libjvm.dylib+0x5d06c3] GrowableArray<ScopeValue*>::at_put(int, ScopeValue* const&)+0x3b
V [libjvm.dylib+0x5cf6c8] c2v_iterateFrames(JNIEnv_*, _jobject*, _jobjectArray*, _jobjectArray*, int, _jobject*)+0x9ea
J 11245 jdk.vm.ci.hotspot.CompilerToVM.iterateFrames([Ljdk/vm/ci/meta/ResolvedJavaMethod;
The attached