Uploaded image for project: 'OptaPlanner'
  1. OptaPlanner
  2. PLANNER-919

Round-robin part thread activation doesn't work due to an unfair semaphore

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.5.0.Final
    • 7.3.0.Final
    • optaplanner-core
    • None
    • 2017 Week 45-46
    • NEW
    • NEW

      runnablePartThreadLimit is guaranteed by a semaphore with the same capacity. Part threads release and re-acquire the semaphore after each move. Due to the semaphore being initialized with non-fair setting, it is possible that active threads re-acquire the semaphore even if there are other threads already waiting for the permit. This leads to temporary part thread starvation.

        1. semaphore-fair.txt
          8 kB
          Jiří Locker
        2. semaphore-unfair.txt
          3 kB
          Jiří Locker

              jlocker Jiří Locker (Inactive)
              jlocker Jiří Locker (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: