Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8204628

[AArch64] Assertion failure in BarrierSetAssembler::load_at

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 11
    • 11
    • 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.




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

                Created:
                Updated:
                Resolved: