Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6449385
Votes 0
Synopsis JCK test dup2_x200106m1 fails with Segmentation Fault on x86
Category hotspot:compiler1
Reported Against b06 , b19
Release Fixed hs16(b02), 7(b57) (Bug ID:2177412)
State 10-Fix Delivered, bug
Priority: 3-Medium
Related Bugs 6756390
Submit Date 17-JUL-2006
Description
Run reproduce.sh from attched archive to reproduce a problem.
Posted Date : 2006-07-17 08:52:53.0

bug originally filed on development version of java RTS 2.0 but that appears to be an hotspot bug.
crashes the same way with java 5u4 and a fastdebug build (does not crash with a jvmg or product build)
Posted Date : 2006-07-20 15:31:34.0
Work Around
Increase the compiler threads stack using -XX:CompilerThreadStackSize=512
Evaluation
hotspot bug that show up only with fastdebug builds.
Posted Date : 2006-07-19 08:21:03.0

There appears to be an infinite recursion in the c1 compiler code (bug does not reproduce with -Xint nor -server):

Here's part of the stack at the crash:

...
  [1014] GraphBuilder::iterate_bytecodes_for_block(this = ???, bci = ???) (optim
ized), at 0xcd4d9c82 (line ~2414) in "c1_GraphBuilder.cpp"
  [1015] GraphBuilder::connect_to_end(this = ???, beg = ???) (optimized), at 0xc
d4d5ffb (line ~2188) in "c1_GraphBuilder.cpp"
  [1016] GraphBuilder::iterate_all_blocks(this = ???, start_in_current_block_for
_inlining = ???) (optimized), at 0xcd4dbc95 (line ~2517) in "c1_GraphBuilder.cpp
"
  [1017] GraphBuilder::try_inline_jsr(this = ???, jsr_dest_bci = ???) (optimized
), at 0xcd4e0436 (line ~3194) in "c1_GraphBuilder.cpp"
  [1018] GraphBuilder::jsr(this = ???, dest = ???) (optimized), at 0xcd4ce5f8 (l
ine ~1203) in "c1_GraphBuilder.cpp"
  [1019] GraphBuilder::iterate_bytecodes_for_block(this = ???, bci = ???) (optim
ized), at 0xcd4d9c82 (line ~2414) in "c1_GraphBuilder.cpp"
  [1020] GraphBuilder::connect_to_end(this = ???, beg = ???) (optimized), at 0xc
d4d5ffb (line ~2188) in "c1_GraphBuilder.cpp"
  [1021] GraphBuilder::iterate_all_blocks(this = ???, start_in_current_block_for
_inlining = ???) (optimized), at 0xcd4dbc95 (line ~2517) in "c1_GraphBuilder.cpp
"
  [1022] GraphBuilder::try_inline_jsr(this = ???, jsr_dest_bci = ???) (optimized
), at 0xcd4e0436 (line ~3194) in "c1_GraphBuilder.cpp"
  [1023] GraphBuilder::jsr(this = ???, dest = ???) (optimized), at 0xcd4ce5f8 (l
ine ~1203) in "c1_GraphBuilder.cpp"
  [1024] GraphBuilder::iterate_bytecodes_for_block(this = ???, bci = ???) (optim
ized), at 0xcd4d9c82 (line ~2414) in "c1_GraphBuilder.cpp"
  [1025] GraphBuilder::connect_to_end(this = ???, beg = ???) (optimized), at 0xc
d4d5ffb (line ~2188) in "c1_GraphBuilder.cpp"
  [1026] GraphBuilder::iterate_all_blocks(this = ???, start_in_current_block_for
_inlining = ???) (optimized), at 0xcd4dbc95 (line ~2517) in "c1_GraphBuilder.cpp
"
  [1027] GraphBuilder::try_inline_jsr(this = ???, jsr_dest_bci = ???) (optimized
), at 0xcd4e0436 (line ~3194) in "c1_GraphBuilder.cpp"
  [1028] GraphBuilder::jsr(this = ???, dest = ???) (optimized), at 0xcd4ce5f8 (l
ine ~1203) in "c1_GraphBuilder.cpp"
  [1029] GraphBuilder::iterate_bytecodes_for_block(this = ???, bci = ???) (optim
ized), at 0xcd4d9c82 (line ~2414) in "c1_GraphBuilder.cpp"
  [1030] GraphBuilder::connect_to_end(this = ???, beg = ???) (optimized), at 0xc
d4d5ffb (line ~2188) in "c1_GraphBuilder.cpp"
  [1031] GraphBuilder::iterate_all_blocks(this = ???, start_in_current_block_for
_inlining = ???) (optimized), at 0xcd4dbc95 (line ~2517) in "c1_GraphBuilder.cpp
"
  [1032] GraphBuilder::GraphBuilder(this = ???, compilation = ???, scope = ???)
(optimized), at 0xcd4de93c (line ~2882) in "c1_GraphBuilder.cpp"
  [1033] IRScope::build_graph(this = ???, compilation = ???, osr_bci = ???) (opt
imized), at 0xcd4e9afd (line ~122) in "c1_IR.cpp"
  [1034] IRScope::IRScope(this = ???, compilation = ???, caller = ???, caller_bc
i = ???, method = ???, osr_bci = ???, create_graph = ???) (optimized), at 0xcd4e
9d1d (line ~155) in "c1_IR.cpp"
  [1035] IR::IR(this = ???, compilation = ???, method = ???, osr_bci = ???) (opt
imized), at 0xcd4ea386 (line ~270) in "c1_IR.cpp"
  [1036] Compilation::build_hir(this = ???) (optimized), at 0xcd4be8fb (line ~95
) in "c1_Compilation.cpp"
  [1037] Compilation::compile_java_method(this = ???) (optimized), at 0xcd4bf4cf
 (line ~250) in "c1_Compilation.cpp"
  [1038] Compilation::compile_method(this = ???) (optimized), at 0xcd4bf7fa (lin
e ~317) in "c1_Compilation.cpp"
  [1039] Compilation::Compilation(this = ???, compiler = ???, env = ???, method
= ???, osr_bci = ???) (optimized), at 0xcd4c0070 (line ~424) in "c1_Compilation.
cpp"
  [1040] Compiler::compile_method(this = ???, env = ???, method = ???, entry_bci
 = ???) (optimized), at 0xcd4c136a (line ~36) in "c1_Compiler.cpp"
Posted Date : 2006-07-21 15:14:38.0

It's not infinite recursion, it's just very deep.  The test case does repeated jsrs to the next bytecode and since C1 parses jsrs using recursion you can recurse fairly deeply before finishing.  The stack size for compiler threads is inconsistently specified as well.   It defaults to the same a VMThreadStackSize if CompilerThreadStackSize == 0.  For some reason on solaris x86 it's specified as 256k instead of 512k as it is on windows and linux.  So solaris x86 is more exposed to stack overflows from the compiler that other platforms.
Posted Date : 2006-07-31 20:55:20.0

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/1b42d5772ae0
Posted Date : 2009-04-16 22:44:28.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang