-
Bug
-
Resolution: Duplicate
-
P3
-
17
The following tests fail when testing the working patch for JDK-6824466 in -Xcomp:
https://github.com/mlchung/jdk/tree/method-invoke-4
The fix forJDK-6824466 replaces the core reflection implementation to use method handles which can stress JIT compilation of method handles much more and shake out any issue.
test/jdk/java/lang/invoke/MethodHandlesGeneralTest.java
test/jdk/java/lang/reflect/Field/TestFieldReflectValueOf.java
Running with these VM flags (tier8-comp):
-Xcomp -XX:+CreateCoredumpOnCrash -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:-TieredCompilation
# assert(is_reference(type)) failed: must be reference type
Current thread (0x00007fdce080be20): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=23555, stack(0x00007000016c3000,0x00007000017c3000)]
Current CompileTask:
C2: 12490 3014 b jdk.internal.reflect.FieldAccessorImpl_S$$4/0x000000032f0c2800::setShort (10 bytes)
Stack: [0x00007000016c3000,0x00007000017c3000], sp=0x00007000017c07a0, free space=1013k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x1214c6c] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x6dc
V [libjvm.dylib+0x121527b] VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x3b
V [libjvm.dylib+0x61b6bd] report_vm_error(char const*, int, char const*, char const*, ...)+0xdd
V [libjvm.dylib+0x54607d] ciTypeFlow::StateVector::load_local_object(int)+0x13d
V [libjvm.dylib+0x544de0] ciTypeFlow::StateVector::apply_one_bytecode(ciBytecodeStream*)+0x750
V [libjvm.dylib+0x541fc4] ciTypeFlow::flow_block(ciTypeFlow::Block*, ciTypeFlow::StateVector*, ciTypeFlow::JsrSet*)+0x374
V [libjvm.dylib+0x54c38f] ciTypeFlow::df_flow_types(ciTypeFlow::Block*, bool, ciTypeFlow::StateVector*, ciTypeFlow::JsrSet*)+0x40f
V [libjvm.dylib+0x54c770] ciTypeFlow::flow_types()+0x1b0
V [libjvm.dylib+0x54d185] ciTypeFlow::do_flow()+0x95
V [libjvm.dylib+0x510f0e] ciMethod::get_flow_analysis()+0x5e
V [libjvm.dylib+0x398fad] InlineTree::check_can_parse(ciMethod*)+0x9d
V [libjvm.dylib+0x4a7dd8] CallGenerator::for_inline(ciMethod*, float)+0x18
V [libjvm.dylib+0x5bbf7a] Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, DirectiveSet*)+0x11da
V [libjvm.dylib+0x4a534b] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x10b
V [libjvm.dylib+0x5d8f51] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x9b1
V [libjvm.dylib+0x5d8382] CompileBroker::compiler_thread_loop()+0x322
V [libjvm.dylib+0x116ea8c] JavaThread::thread_main_inner()+0x28c
V [libjvm.dylib+0x116e7ad] JavaThread::run()+0x2ad
V [libjvm.dylib+0x116b5b7] Thread::call_run()+0x177
V [libjvm.dylib+0xe4f57f] thread_native_entry(Thread*)+0x15f
C [libsystem_pthread.dylib+0x6109] _pthread_start+0x94
C [libsystem_pthread.dylib+0x1b8b] thread_start+0xf
https://github.com/mlchung/jdk/tree/method-invoke-4
The fix for
test/jdk/java/lang/invoke/MethodHandlesGeneralTest.java
test/jdk/java/lang/reflect/Field/TestFieldReflectValueOf.java
Running with these VM flags (tier8-comp):
-Xcomp -XX:+CreateCoredumpOnCrash -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:-TieredCompilation
# assert(is_reference(type)) failed: must be reference type
Current thread (0x00007fdce080be20): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=23555, stack(0x00007000016c3000,0x00007000017c3000)]
Current CompileTask:
C2: 12490 3014 b jdk.internal.reflect.FieldAccessorImpl_S$$4/0x000000032f0c2800::setShort (10 bytes)
Stack: [0x00007000016c3000,0x00007000017c3000], sp=0x00007000017c07a0, free space=1013k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x1214c6c] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x6dc
V [libjvm.dylib+0x121527b] VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x3b
V [libjvm.dylib+0x61b6bd] report_vm_error(char const*, int, char const*, char const*, ...)+0xdd
V [libjvm.dylib+0x54607d] ciTypeFlow::StateVector::load_local_object(int)+0x13d
V [libjvm.dylib+0x544de0] ciTypeFlow::StateVector::apply_one_bytecode(ciBytecodeStream*)+0x750
V [libjvm.dylib+0x541fc4] ciTypeFlow::flow_block(ciTypeFlow::Block*, ciTypeFlow::StateVector*, ciTypeFlow::JsrSet*)+0x374
V [libjvm.dylib+0x54c38f] ciTypeFlow::df_flow_types(ciTypeFlow::Block*, bool, ciTypeFlow::StateVector*, ciTypeFlow::JsrSet*)+0x40f
V [libjvm.dylib+0x54c770] ciTypeFlow::flow_types()+0x1b0
V [libjvm.dylib+0x54d185] ciTypeFlow::do_flow()+0x95
V [libjvm.dylib+0x510f0e] ciMethod::get_flow_analysis()+0x5e
V [libjvm.dylib+0x398fad] InlineTree::check_can_parse(ciMethod*)+0x9d
V [libjvm.dylib+0x4a7dd8] CallGenerator::for_inline(ciMethod*, float)+0x18
V [libjvm.dylib+0x5bbf7a] Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, DirectiveSet*)+0x11da
V [libjvm.dylib+0x4a534b] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x10b
V [libjvm.dylib+0x5d8f51] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x9b1
V [libjvm.dylib+0x5d8382] CompileBroker::compiler_thread_loop()+0x322
V [libjvm.dylib+0x116ea8c] JavaThread::thread_main_inner()+0x28c
V [libjvm.dylib+0x116e7ad] JavaThread::run()+0x2ad
V [libjvm.dylib+0x116b5b7] Thread::call_run()+0x177
V [libjvm.dylib+0xe4f57f] thread_native_entry(Thread*)+0x15f
C [libsystem_pthread.dylib+0x6109] _pthread_start+0x94
C [libsystem_pthread.dylib+0x1b8b] thread_start+0xf
- duplicates
-
JDK-8265872 assert(tag == t->type()->tag() || tag == objectTag && t->type()->tag() == addressTag) failed: types must correspond
- Closed
- relates to
-
JDK-8265872 assert(tag == t->type()->tag() || tag == objectTag && t->type()->tag() == addressTag) failed: types must correspond
- Closed
-
JDK-6824466 (reflect) java.lang.reflect.Method should use java.lang.invoke.MethodHandle
- Closed