Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-2097

Offheap persistent heapLRU regions can run out of offheap memory during recovery

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.2.0
    • offheap
    • None

    Description

      When the data for a persistent region is being recovered from the disk store the lru limit is constantly checked. If the lru limit is exceeded then value recovery will cease. But for off-heap regions this lru limit should be checking how much off-heap memory has been allocated.
      During recovery the amount of heap memory is being checked for an offheap regions. So we can end up recovering too many values to off-heap and running out of off-heap memory during recovery.

      The code that causes this problem is: org.apache.geode.internal.cache.lru.HeapLRUCapacityController.createLRUHelper().new AbstractEnableLRU()

      {...}

      .mustEvict(LRUStatistics, Region, int)

      During off-heap disk store recovery the Region parameter passed to this method is "null". This causes the following heap check to be done:
      if (region == null)

      { return resourceManager.getHeapMonitor().getState().isEviction(); }

      Attachments

        Activity

          People

            dschneider Darrel Schneider
            dschneider Darrel Schneider
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: