I was running runThese on linux amd64 with -quick and -XX:+DeoptimizeALot
and got another failure. This happens right at the end of the run.
The stack trace is:
#5 0x0000002a9611bfff in report_assertion_failure (file_name=0x2a965bef20 "/ws/c2_osr_link/src/share/vm/opto/parse1.cpp",
line_no=890,
message=0x2a965bf920 "assert(_exits.control()->is_top() || !_gvn.type(ret_phi)->empty(),\"return value must be well defined\")") at /net/gretch/disk2/ws/osr/src/share/vm/utilities/debug.cpp:210
#6 0x0000002a9637e666 in Parse::do_exits (this=0x7fbe9fd570) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:890
#7 0x0000002a9637d521 in Parse (this=0x7fbe9fd570, caller=0x2b1e4a8d68, parse_method=0x401c4fd8, expected_uses=11785)
at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:516
#8 0x0000002a9606c3b7 in ParseGenerator::generate (this=0x2b1e2cbea8, jvms=0x2b1e4a8d68)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/callGenerator.cpp:58
#9 0x0000002a9615aba3 in Parse::do_call (this=0x7fbe9fde50) at /net/gretch/disk2/ws/osr/src/share/vm/opto/doCall.cpp:322
#10 0x0000002a9638ad38 in Parse::do_one_bytecode (this=0x7fbe9fde50) at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:2044
#11 0x0000002a96380114 in Parse::do_one_block (this=0x7fbe9fde50) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:1352
#12 0x0000002a9637d884 in Parse::visit_blocks (this=0x7fbe9fde50) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:618
#13 0x0000002a9637d605 in Parse::do_all_blocks (this=0x7fbe9fde50) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:535
#14 0x0000002a9637d4d9 in Parse (this=0x7fbe9fde50, caller=0x40279268, parse_method=0x401c3318, expected_uses=235)
at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:506
#15 0x0000002a9606c3b7 in ParseGenerator::generate (this=0x2b1e2cb8e8, jvms=0x40279268)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/callGenerator.cpp:58
#16 0x0000002a960e1f07 in Compile (this=0x7fbe9fe5c0, ci_env=0x7fbe9ff530, compiler=0x402437e8, target=0x401c3318, osr_bci=10,
subsume_loads=1) at /net/gretch/disk2/ws/osr/src/share/vm/opto/compile.cpp:395
#17 0x0000002a9606b7ef in C2Compiler::compile_method (this=0x402437e8, env=0x7fbe9ff530, target=0x401c3318, entry_bci=10)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/c2compiler.cpp:31
#18 0x0000002a960ed535 in CompileBroker::invoke_compiler_on_method (task=0x402716a8)
at /net/gretch/disk2/ws/osr/src/share/vm/compiler/compileBroker.cpp:1591
#19 0x0000002a960ecec6 in CompileBroker::compiler_thread_loop ()
at /net/gretch/disk2/ws/osr/src/share/vm/compiler/compileBroker.cpp:1439
#20 0x0000002a964245be in compiler_thread_entry (thread=0x40245a88, __the_thread__=0x40245a88)
at /net/gretch/disk2/ws/osr/src/share/vm/runtime/thread.cpp:2562
#21 0x0000002a964213a1 in JavaThread::thread_main_inner (this=0x40245a88)
at /net/gretch/disk2/ws/osr/src/share/vm/runtime/thread.cpp:1326
I looked at it a little. The method in question is:
sun/net/www/ParseUtil::decode(Ljava/lang/String;)Ljava/lang/String
call _exits.control()->dump() results in:
28 Region === _ 5 [[ 32 30 29 27 ]]
print _exits.control()->is_top() == false
call ret_phi->dump()
1 Con === 0 [[]] #top
###@###.### 2004-11-05 20:55:49 GMT
and got another failure. This happens right at the end of the run.
The stack trace is:
#5 0x0000002a9611bfff in report_assertion_failure (file_name=0x2a965bef20 "/ws/c2_osr_link/src/share/vm/opto/parse1.cpp",
line_no=890,
message=0x2a965bf920 "assert(_exits.control()->is_top() || !_gvn.type(ret_phi)->empty(),\"return value must be well defined\")") at /net/gretch/disk2/ws/osr/src/share/vm/utilities/debug.cpp:210
#6 0x0000002a9637e666 in Parse::do_exits (this=0x7fbe9fd570) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:890
#7 0x0000002a9637d521 in Parse (this=0x7fbe9fd570, caller=0x2b1e4a8d68, parse_method=0x401c4fd8, expected_uses=11785)
at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:516
#8 0x0000002a9606c3b7 in ParseGenerator::generate (this=0x2b1e2cbea8, jvms=0x2b1e4a8d68)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/callGenerator.cpp:58
#9 0x0000002a9615aba3 in Parse::do_call (this=0x7fbe9fde50) at /net/gretch/disk2/ws/osr/src/share/vm/opto/doCall.cpp:322
#10 0x0000002a9638ad38 in Parse::do_one_bytecode (this=0x7fbe9fde50) at /net/gretch/disk2/ws/osr/src/share/vm/opto/parse2.cpp:2044
#11 0x0000002a96380114 in Parse::do_one_block (this=0x7fbe9fde50) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:1352
#12 0x0000002a9637d884 in Parse::visit_blocks (this=0x7fbe9fde50) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:618
#13 0x0000002a9637d605 in Parse::do_all_blocks (this=0x7fbe9fde50) at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:535
#14 0x0000002a9637d4d9 in Parse (this=0x7fbe9fde50, caller=0x40279268, parse_method=0x401c3318, expected_uses=235)
at /ws/c2_osr_link/src/share/vm/opto/parse1.cpp:506
#15 0x0000002a9606c3b7 in ParseGenerator::generate (this=0x2b1e2cb8e8, jvms=0x40279268)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/callGenerator.cpp:58
#16 0x0000002a960e1f07 in Compile (this=0x7fbe9fe5c0, ci_env=0x7fbe9ff530, compiler=0x402437e8, target=0x401c3318, osr_bci=10,
subsume_loads=1) at /net/gretch/disk2/ws/osr/src/share/vm/opto/compile.cpp:395
#17 0x0000002a9606b7ef in C2Compiler::compile_method (this=0x402437e8, env=0x7fbe9ff530, target=0x401c3318, entry_bci=10)
at /net/gretch/disk2/ws/osr/src/share/vm/opto/c2compiler.cpp:31
#18 0x0000002a960ed535 in CompileBroker::invoke_compiler_on_method (task=0x402716a8)
at /net/gretch/disk2/ws/osr/src/share/vm/compiler/compileBroker.cpp:1591
#19 0x0000002a960ecec6 in CompileBroker::compiler_thread_loop ()
at /net/gretch/disk2/ws/osr/src/share/vm/compiler/compileBroker.cpp:1439
#20 0x0000002a964245be in compiler_thread_entry (thread=0x40245a88, __the_thread__=0x40245a88)
at /net/gretch/disk2/ws/osr/src/share/vm/runtime/thread.cpp:2562
#21 0x0000002a964213a1 in JavaThread::thread_main_inner (this=0x40245a88)
at /net/gretch/disk2/ws/osr/src/share/vm/runtime/thread.cpp:1326
I looked at it a little. The method in question is:
sun/net/www/ParseUtil::decode(Ljava/lang/String;)Ljava/lang/String
call _exits.control()->dump() results in:
28 Region === _ 5 [[ 32 30 29 27 ]]
print _exits.control()->is_top() == false
call ret_phi->dump()
1 Con === 0 [[]] #top
###@###.### 2004-11-05 20:55:49 GMT