[AArch64] Assertion failure in BarrierSetAssembler::load_at

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P2
    • 11
    • Affects Version/s: 11
    • Component/s: hotspot
    • 11
    • b18
    • aarch64
    • linux

        An assertion is tripping in BarrierSetAssembler::load_at, at src/hotspot/cpu/aarch64/gc/shared/barrierSetAssembler_aarch64.cpp:54

        The load_at method does two checks:
          bool on_heap = (decorators & IN_HEAP) != 0;
          bool on_root = (decorators & IN_ROOT) != 0;

        The following assertion is tripping as neither of them were set:
            assert(on_root, "why else?");

        This was because of a change in MacroAssembler::resolve_oop_handle:
        3668 bs->load_at(this, IN_CONCURRENT_ROOT, T_OBJECT,
        3669 result, Address(result, 0), tmp, rthread);

        Before it was setting IN_ROOT | IN_CONCURRENT_ROOT. This change was introduced by JDK-8203353 .


        The assertion trips during Interpreter generation.




              Assignee:
              Stuart Monteith
              Reporter:
              Stuart Monteith
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: