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

[AArch64] Assertion failure in BarrierSetAssembler::load_at

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2
    • Resolution: Fixed
    • Affects Version/s: 11
    • Fix Version/s: 11
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
    • Introduced In Version:
      11
    • Resolved In Build:
      b18
    • CPU:
      aarch64
    • OS:
      linux

      Backports

        Description

        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.




          Attachments

            Issue Links

              Activity

                People

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: