Uploaded image for project: 'JikesRVM'
  1. RVM-1022

MMTk signals out of memory after a successful emergency collection

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Medium
    • Resolution: Fixed
    • Affects Version/s: 3.1.3
    • Fix Version/s: 3.1.4
    • Component/s: MMTk
    • Labels:
      None

      Description

      The collection logic in Allocator.allocSlowInline and Space.acquire goes like this:

      Allocator.allocSlowInline: 
        (chain of calls leading to space.acquire)
        if (isEmergency && allocation failed)
          throw OOME
      
      Space.acquire:
        attempt allocation
        if (gc required)
          force GC (setting emergency collection flag)
          return failure (and expect Allocator to retry)
      

      This means that even if an Emergency collection succeeds, allocSlowInline will trigger an OutOfMemory exception.

      This is especially significant in benchmarks that use Soft references, and in collectors that have variable levels of "aggressiveness", such as Immix.

        Attachments

          Activity

            People

            • Assignee:
              rgarner Robin Garner
              Reporter:
              rgarner Robin Garner
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: