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

    • Bug
    • Status: Resolved
    • P4
    • Resolution: Fixed
    • 10
    • 10
    • hotspot
    • None
    • gc
    • 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

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

            Dates

              Created:
              Updated:
              Resolved: