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

ParGC: assert at sharedHeap.cpp, line 116

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P4 P4
    • None
    • 6
    • hotspot
    • None
    • gc
    • generic
    • generic

      While running specjbb, I encountered this assert in
      SharedHeap::fill_region_with_object

          assert(word_size == (size_t)oopDesc::header_size(), "Unaligned?");

      fill_region_with_object is being called from
      PSMarkSweep::absorb_live_data_from_eden

        // Fill the unused part of the old gen.
        MutableSpace* const old_space = old_gen->object_space();
        MemRegion old_gen_unused(old_space->top(), old_space->end());
        if (!old_gen_unused.is_empty()) {
          SharedHeap::fill_region_with_object(old_gen_unused);
        }

      We're about to move the boundary between the old and young generations.
      We bridge the gap between the old gen top and end (and therefore the
      gap between the old gen top and the young gen bottom) with a garbage
      object.

      If there isn't enough space (2 HeapWords == minimum object size) between
      the old gen's top and end, we assert. If we were to weaken the assert,
      we'd end up stomping the header word of the first object in the young gen.
      In the product vm, we'll do the latter without any notice to the user
      and corrupt the heap.







      ###@###.### 2005-2-04 17:17:28 GMT

            jmasa Jon Masamitsu (Inactive)
            phh Paul Hohensee
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: