RFR: 8146416: java.lang.OutOfMemoryError triggers: assert(current_bci == 0) failed: bci isn't zero for do_not_unlock_if_synchronized

Roland Westrelin rwestrel at redhat.com
Wed Jun 1 16:25:45 UTC 2016

>> It's already addressed now. It was added by 6898462. What this bug shows
>> is that it doesn't work in all cases. I'd like to know what cases are
>> not covered. Is it only Unpack_exception or is there another one?
> 1) Unpack_exception
> 2) deopt without unpack_exception( i didnt write a test case for this)
> 3) Uncommon_trap

What I see from the code of vframeArrayElement::unpack_on_stack():

      case Deoptimization::Unpack_uncommon_trap:
      case Deoptimization::Unpack_reexecute:
        // redo last byte code
        pc  = Interpreter::deopt_entry(vtos, 0);

both Unpack_uncommon_trap/Unpack_reexecute are fine. Unpack_exception is
always a problem because it doesn't return to a deopt entry.
Unpack_deopt is sometimes a problem because it doesn't return to a deopt
entry, sometimes (for bytecodes return and athrow).


More information about the hotspot-compiler-dev mailing list