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

G1 BOT wrongly assumes that objects must always begin at the start of G1BlockOffsetTablePart

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 10
    • Fix Version/s: 10
    • Component/s: hotspot
    • Labels:
      None
    • Subcomponent:
      gc
    • Resolved In Build:
      b21

      Description

      The following assert in g1BlockOffsetPart is not always true:
      assert(_bot->offset_array(0) == 0, "objects can't cross covered areas");

      It holds only if the first region in the heap is committed, otherwise it will it-self trigger an assertion during the call to offset_array(). What would be a valid assertion to make is:
      _bot->offset_array(_bot->index_for(_space->bottom())) == 0
      I.e. an object starts at the bottom of this space. This is true for all regions accept continues humongous, so they will need special treatment.

      We currently never uncommit the first region of the heap, so the impact and likelihood of this issue is pretty low.

        Attachments

          Activity

            People

            Assignee:
            sjohanss Stefan Johansson
            Reporter:
            sjohanss Stefan Johansson
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: