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

SoftReferences declared dead too early

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 9
    • 9
    • hotspot
    • None
    • gc
    • b115
    • generic
    • generic

      RefProcPhase1Task uses WorkerThread::id() to select the list to process. After the recent changes to how WorkGang works[1], this no longer guarantees that all reference lists are processed. This in turn means we might kill SoftReferences even when the policy says they should be kept alive.

      The fix here would be to use the worker_id passed into the Task's work() function instead of using WorkerThread::id().


      [1] There's no longer any guarantee that all GangWorker threads will execute the Task's work() function, since a quick-to-wakeup worker thread might steal the work intended for a slow-to-wakeup worker thread.

            pliden Per Liden (Inactive)
            pliden Per Liden (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: