Harmony
  1. Harmony
  2. HARMONY-2386

[drlvm][jit] Crash in Jitrino while running test in HARMONY-2307 many times

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: DRLVM
    • Labels:
      None
    • Estimated Complexity:
      Advanced

      Description

      While fixing intermittent crashes for classlib test org.apache.harmony.security.tests.x509.PolicyQualifierInfoTest I sometimes got crashes in Jitrino with a very long stack trace [1] reported by crash handler. Actually it looks like frames from different threads were mixed together and stupid crash handler uses a static counter. Anyway it always ended up in Jitrino frames. I cannot find the exact segfault reason because Jitrino is compiled without debug information.

      In my understanding it could be that Jitrino got a segfault because of stack overflow. It seems like DrlEMImpl::methodProfileIsReady doesn't use check_available_stack_size when doing method recompilation, and therefore Jitrino may indeed hit SOE in compilation. I don't really know how to fix it because EM doesn't seem to handle a situation when vm_compile_method returns JIT_FAILURE.

      To reproduce I used SLES9 with 4 CPUs (it is important because the cause may be some subtle race condition). I used a small script to run the test many times [2]. Please use VM version after 481009 because it contains a fix for another bug and you may hit it instead.

      [1]
      Run 753
      .SIGSEGV in VM code.
      SIGSEGV in VM code.
      SIGSEGV in VM code.
      SIGSEGV in VM code.
      SIGSEGV in VM code.
      Stack trace:
      Stack trace:
      Stack trace:
      1: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      2: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      Stack trace:
      3: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      4: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      Stack trace:
      5: Jitrino::Ia32::IRManager::newInst(Mnemonic, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*) (??:-1)
      6: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      SIGSEGV in VM code.
      SIGSEGV in VM code.
      SIGSEGV in VM code.
      7: Jitrino::Ia32::IRManager::newRetInst(Jitrino::Ia32::Opnd*) (??:-1)
      SIGSEGV in VM code.
      8: .L713 (??:-1)
      SIGSEGV in VM code.
      9: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      10: Jitrino::Ia32::InstCodeSelector::ret(Jitrino::CG_OpndHandle*) (??:-1)
      11: Jitrino::Ia32::InstCodeSelector::bnzero(Jitrino::CompareZeroOp::Types, Jitrino::CG_OpndHandle*) (??:-1)
      12: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      13: .L3198 (??:-1)
      14: .L3613 (??:-1)
      15: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      Stack trace:
      16: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      17: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      Stack trace:
      18: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      Stack trace:
      Stack trace:
      19: Jitrino::Ia32::IRManager::newInstEx(Mnemonic, unsigned int, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*) (??:-1)
      20: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      21: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      22: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      23: Jitrino::Ia32::IRManager::newInstEx(Mnemonic, unsigned int, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*) (??:-1)
      25: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      24: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      26: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      27: Jitrino::Ia32::InstCodeSelector::simpleOp_I4(Mnemonic, Jitrino::Type*, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*) (??:-1)
      28: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      29: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      Stack trace:
      30: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      31: Jitrino::Ia32::InstCodeSelector::shiftOp(Jitrino::IntegerOp::Types, Mnemonic, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*) (??:-1)
      32: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      33: .L477 (??:-1)
      34: Jitrino::Ia32::IRManager::newRetInst(Jitrino::Ia32::Opnd*) (??:-1)
      35: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      36: Jitrino::Ia32::Inst::fixOpndsForOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      37: Jitrino::Ia32::IRManager::newRetInst(Jitrino::Ia32::Opnd*) (??:-1)
      38: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      39: .L2351 (??:-1)
      40: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      41: Jitrino::Ia32::InstCodeSelector::shl(Jitrino::IntegerOp::Types, Jitrino::CG_OpndHandle*, Jitrino::CG_OpndHandle*) (??:-1)
      42: Jitrino::Ia32::InstCodeSelector::ret() (??:-1)
      43: Jitrino::Ia32::InstCodeSelector::ret() (??:-1)
      44: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      45: .L2917 (??:-1)
      46: Jitrino::Ia32::IRManager::newRetInst(Jitrino::Ia32::Opnd*) (??:-1)
      47: Jitrino::Ia32::IRManager::newInst(Mnemonic, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*, Jitrino::Ia32::Opnd*) (??:-1)
      48: .L3613 (??:-1)
      50: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      49: .L3613 (??:-1)
      51: Jitrino::Ia32::InstCodeSelector::ret(Jitrino::CG_OpndHandle*) (??:-1)
      52: .L713 (??:-1)
      53: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      54: .L3613 (??:-1)
      55: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      56: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      57: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      58: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      59: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      60: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      61: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      62: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      63: Jitrino::Ia32::Inst::assignOpcodeGroup(Jitrino::Ia32::IRManager*) (??:-1)
      64: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      65: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      66: Jitrino::Ia32::IRManager::newRetInst(Jitrino::Ia32::Opnd*) (??:-1)
      67: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      68: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      69: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      70: Jitrino::Ia32::InstCodeSelector::ret() (??:-1)
      71: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      72: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      73: Jitrino::Ia32::InstCodeSelector::bzero(Jitrino::CompareZeroOp::Types, Jitrino::CG_OpndHandle*) (??:-1)
      74: .L3613 (??:-1)
      75: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      76: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      77: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      78: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      79: Jitrino::Ia32::IRManager::newRetInst(Jitrino::Ia32::Opnd*) (??:-1)
      80: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      81: .L3198 (??:-1)
      82: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      83: Jitrino::Ia32::InstCodeSelector::ret(Jitrino::CG_OpndHandle*) (??:-1)
      84: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      85: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      86: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      87: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      88: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      89: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      90: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      91: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      92: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      93: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      94: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      95: .L3613 (??:-1)
      96: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      97: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      98: Jitrino::_BlockCodeSelector::genCode(Jitrino::InstructionCallback&) (??:-1)
      99: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      100: JIT_compile_method_with_params (??:-1)
      101: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      102: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      103: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      104: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      105: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      106: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      107: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      108: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      109: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      110: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      111: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      112: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      113: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      114: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      115: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      116: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      117: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
      118: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      119: JIT_compile_method_with_params (??:-1)
      120: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      121: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      122: JIT_compile_method_with_params (??:-1)
      123: compile_do_compilation_jit(Method*, JIT*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:709)
      124: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
      125: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
      126: vm_compile_method (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2469)
      127: DrlEMImpl::methodProfileIsReady(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:731)
      128: compile_do_compilation_jit(Method*, JIT*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:709)
      129: EBProfileCollector::syncModeJitCallback(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:191)
      130: Jitrino::Ia32::CfgCodeSelector::genBlock(unsigned int, unsigned int, Jitrino::CFGCodeSelector::Callback::BlockKind, Jitrino::BlockCodeSelector&, double) (??:-1)
      131: compile_do_compilation_jit(Method*, JIT*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:709)
      132: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      133: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      134: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      135: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      136: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      137: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      138: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      139: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      140: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      141: JIT_compile_method_with_params (??:-1)
      142: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      143: Jitrino::_CFGCodeSelector::genCode(Jitrino::CFGCodeSelector::Callback&) (??:-1)
      144: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      145: Jitrino::Ia32::MethodCodeSelector::genCFG(unsigned int, Jitrino::CFGCodeSelector&, bool) (??:-1)
      146: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      147: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      148: JIT_compile_method_with_params (??:-1)
      149: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      150: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      151: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      152: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      153: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      154: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      155: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
      156: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      157: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      158: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      159: JIT_compile_method_with_params (??:-1)
      160: vm_compile_method (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2469)
      161: DrlEMImpl::methodProfileIsReady(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:731)
      162: eb_profiler_sync_mode_callback(void*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:91)
      163: IP is 0x410BC03A <native code>
      164: ?? (??:-1)
      165: org/apache/harmony/security/asn1/BerInputStream.read()I (BerInputStream.java:887)
      166: org/apache/harmony/security/asn1/BerInputStream.next()I (BerInputStream.java:192)
      167: org/apache/harmony/security/asn1/DerInputStream.next()I (DerInputStream.java:56)
      168: org/apache/harmony/security/asn1/BerInputStream.<init>([BII)V (BerInputStream.java:91)
      169: org/apache/harmony/security/asn1/DerInputStream.<init>([B)V (DerInputStream.java:39)
      170: org/apache/harmony/security/asn1/ASN1Type.decode([B)Ljava/lang/Object; (ASN1Type.java:98)
      171: org/apache/harmony/security/tests/x509/PolicyQualifierInfoTest$TestWorker1.run()V (PolicyQualifierInfoTest.java:92)
      172: compile_do_compilation_jit(Method*, JIT*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:709)
      173: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
      174: vm_compile_method (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2469)
      175: DrlEMImpl::methodProfileIsReady(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:731)
      176: vm_invoke_native_array_stub (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/invoke_native_stub_ia32.asm:41)
      177: EBProfileCollector::syncModeJitCallback(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:191)
      178: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
      179: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      180: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      181: JIT_compile_method_with_params (??:-1)
      182: compile_do_compilation_jit(Method*, JIT*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:709)
      183: JIT_execute_method_default(void*, _jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/ini_iA32.cpp:199)
      184: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
      185: DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:506)
      186: ExecuteMethod (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/em_intf.cpp:43)
      187: vm_compile_method (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2469)
      188: DrlEMImpl::methodProfileIsReady(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:731)
      189: compile_do_compilation_jit(Method*, JIT*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:709)
      190: vm_compile_method (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2469)
      191: Jitrino::_MethodCodeSelector::selectCode(Jitrino::MethodCodeSelector::Callback&) (??:-1)
      192: Jitrino::Ia32::CodeGenerator::genCode(Jitrino::SessionAction*, Jitrino::MethodCodeSelector&) (??:-1)
      193: DrlEMImpl::methodProfileIsReady(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:731)
      194: Jitrino::HIR2LIRSelectorSessionAction::run() (??:-1)
      195: Jitrino::runPipeline(Jitrino::CompilationContext*) (??:-1)
      196: EBProfileCollector::syncModeJitCallback(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:191)
      197: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      198: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      199: eb_profiler_sync_mode_callback(void*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:91)
      200: IP is 0x410BC03A <native code>
      201: ?? (??:-1)
      202: java/lang/String.getChars(II[CI)V (String.java:930)
      203: java/lang/AbstractStringBuilder.append0(Ljava/lang/String;)V (AbstractStringBuilder.java:159)
      204: java/lang/StringBuilder.append(Ljava/lang/String;)Ljava/lang/StringBuilder; (StringBuilder.java:243)
      205: org/apache/harmony/security/tests/x509/PolicyQualifierInfoTest$TestWorker1.run()V (PolicyQualifierInfoTest.java:92)
      206: EBProfileCollector::syncModeJitCallback(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:191)
      207: vm_execute_java_method_array(_jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/ini.cpp:51)
      208: eb_profiler_sync_mode_callback(void*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:91)
      209: IP is 0x410BC03A <native code>
      210: ?? (??:-1)
      211: org/apache/harmony/security/asn1/DerInputStream.next()I (DerInputStream.java:64)
      212: org/apache/harmony/security/asn1/BerInputStream.readSequence(Lorg/apache/harmony/security/asn1/ASN1Sequence;)V (BerInputStream.java:608)
      213: org/apache/harmony/security/asn1/DerInputStream.readSequence(Lorg/apache/harmony/security/asn1/ASN1Sequence;)V (DerInputStream.java:126)
      214: org/apache/harmony/security/asn1/ASN1Sequence.decode(Lorg/apache/harmony/security/asn1/BerInputStream;)Ljava/lang/Object; (ASN1Sequence.java:49)
      215: org/apache/harmony/security/asn1/ASN1Type.decode([B)Ljava/lang/Object; (ASN1Type.java:98)
      216: org/apache/harmony/security/tests/x509/PolicyQualifierInfoTest$TestWorker1.run()V (PolicyQualifierInfoTest.java:92)
      217: vm_invoke_native_array_stub (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/invoke_native_stub_ia32.asm:41)
      218: vm_invoke_native_array_stub (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/invoke_native_stub_ia32.asm:41)
      219: call_method_no_ref_result (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:184)
      220: CallVoidMethodA(JNIEnv_External*, _jobject*, _jmethodID*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:219)
      221: JIT_execute_method_default(void*, _jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/ini_iA32.cpp:199)
      222: DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:506)
      223: compile_do_compilation_jit(Method*, JIT*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:709)
      224: ExecuteMethod (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/em_intf.cpp:43)
      225: vm_compile_method (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2469)
      226: vm_compile_method (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2469)
      227: DrlEMImpl::methodProfileIsReady(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:731)
      228: EBProfileCollector::syncModeJitCallback(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:191)
      229: Jitrino::compileMethod(Jitrino::CompilationContext*) (??:-1)
      230: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      231: JIT_compile_method_with_params (??:-1)
      232: vm_execute_java_method_array(_jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/ini.cpp:51)
      233: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
      234: call_method_no_ref_result (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:184)
      235: wrapper_proc (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/thread/src/thread_java_basic.c:101)
      236: thread_start_proc (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/thread/src/thread_native_basic.c:714)
      237: DrlEMImpl::methodProfileIsReady(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:731)
      238: compile_do_compilation_jit(Method*, JIT*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:709)
      239: JIT_execute_method_default(void*, _jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/ini_iA32.cpp:199)
      240: EBProfileCollector::syncModeJitCallback(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:191)
      241: DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:506)
      242: eb_profiler_sync_mode_callback(void*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:91)
      243: IP is 0x410BC03A <native code>
      244: ?? (??:-1)
      245: java/lang/String.valueOf(Ljava/lang/Object;)Ljava/lang/String; (String.java:1805)
      246: org/apache/harmony/security/tests/x509/PolicyQualifierInfoTest$TestWorker1.run()V (PolicyQualifierInfoTest.java:92)
      247: vm_compile_method (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2469)
      248: eb_profiler_sync_mode_callback(void*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:91)
      249: IP is 0x410BC03A <native code>
      250: ?? (??:-1)
      251: org/apache/harmony/security/asn1/BerInputStream.next()I (BerInputStream.java:192)
      252: org/apache/harmony/security/asn1/DerInputStream.next()I (DerInputStream.java:56)
      253: org/apache/harmony/security/asn1/BerInputStream.<init>([BII)V (BerInputStream.java:91)
      254: org/apache/harmony/security/asn1/DerInputStream.<init>([B)V (DerInputStream.java:39)
      255: org/apache/harmony/security/asn1/ASN1Type.decode([B)Ljava/lang/Object; (ASN1Type.java:98)
      256: org/apache/harmony/security/tests/x509/PolicyQualifierInfoTest$TestWorker1.run()V (PolicyQualifierInfoTest.java:92)
      257: Jitrino::Jitrino::CompileMethod(Jitrino::CompilationContext*) (??:-1)
      258: JIT_compile_method_with_params (??:-1)
      259: vm_invoke_native_array_stub (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/invoke_native_stub_ia32.asm:41)
      260: Dll_JIT::compile_method_with_params(void*, Method*, OpenMethodExecutionParams) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/include/dll_jit_intf.h:86)
      261: eb_profiler_sync_mode_callback(void*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/EBProfileCollector.cpp:91)
      262: IP is 0x410BC03A <native code>
      263: ?? (??:-1)
      264: java/lang/Number.<init>()V (Number.java:33)
      265: java/lang/Byte.<init>(B)V (Byte.java:80)
      266: junit/framework/Assert.assertEquals(Ljava/lang/String;BB)V (Assert.java:159)
      267: org/apache/harmony/security/tests/x509/PolicyQualifierInfoTest$TestWorker1.run()V (PolicyQualifierInfoTest.java:92)
      268: compile_do_compilation_jit(Method*, JIT*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/compile.cpp:709)
      269: JIT_execute_method_default(void*, _jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/ini_iA32.cpp:199)
      270: CallVoidMethodA(JNIEnv_External*, _jobject*, _jmethodID*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:219)
      271: DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:506)
      272: vm_invoke_native_array_stub (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/invoke_native_stub_ia32.asm:41)
      273: vm_compile_method (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/class_support/C_Interface.cpp:2469)
      274: ExecuteMethod (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/em_intf.cpp:43)
      275: DrlEMImpl::methodProfileIsReady(MethodProfile*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:731)
      276: JIT_execute_method_default(void*, _jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/util/ia32/base/ini_iA32.cpp:199)
      277: DrlEMImpl::executeMethod(_jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/DrlEMImpl.cpp:506)
      278: vm_execute_java_method_array(_jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/ini.cpp:51)
      279: ExecuteMethod (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/em_intf.cpp:43)
      280: call_method_no_ref_result (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:184)
      281: wrapper_proc (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/thread/src/thread_java_basic.c:101)
      282: thread_start_proc (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/thread/src/thread_native_basic.c:714)
      283: ExecuteMethod (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/em/src/em_intf.cpp:43)
      284: CallVoidMethodA(JNIEnv_External*, _jobject*, _jmethodID*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:219)
      285: dummy_worker (threadproc/unix/thread.c:139)
      286: vm_execute_java_method_array(_jmethodID*, jvalue*, jvalue*) (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jit/ini.cpp:51)
      287: call_method_no_ref_result (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/vmcore/src/jni/jni_method.cpp:184)
      288: wrapper_proc (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/thread/src/thread_java_basic.c:101)
      289: start_thread (??:-1)
      290: thread_start_proc (/nfs/ims/proj/drl/mrt1/users/gregory/suse/trunk/working_vm/vm/thread/src/thread_native_basic.c:714)
      291: clone (??:-1)
      <end of stack trace>
      Segmentation fault (core dumped)

      [2] i=1; while ../working_vm/build/lnx_ia32_gcc_debug/deploy/jre/bin/java -cp depends/jars/junit_3.8.2/junit.jar:./modules/security/bin/test/impl junit.textui.TestRunner org.apache.harmony.security.tests.x509.PolicyQualifierInfoTest; do i=$[i+1]; echo Run $i; done

        Issue Links

          Activity

          Hide
          Gregory Shimansky added a comment -

          I've ran the test more than 1000 times. It didn't crash. I think the bug is gone.

          Show
          Gregory Shimansky added a comment - I've ran the test more than 1000 times. It didn't crash. I think the bug is gone.
          Hide
          Gregory Shimansky added a comment -

          Ok going to check the test again.

          Show
          Gregory Shimansky added a comment - Ok going to check the test again.
          Hide
          Egor Pasko added a comment -

          I ran the test 50 times in a row and see no crash (SUSE9/ia32)
          Looks like the bug is gone with HARMONY-2307 and can be closed
          r489334 (jitrino built in debug mode)

          Show
          Egor Pasko added a comment - I ran the test 50 times in a row and see no crash (SUSE9/ia32) Looks like the bug is gone with HARMONY-2307 and can be closed r489334 (jitrino built in debug mode)

            People

            • Assignee:
              Gregory Shimansky
              Reporter:
              Gregory Shimansky
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development