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

Full assert should check if the move thread's state (genuine variables + shadow variables) is the same as the solver's state

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: Major Major
    • Future
    • 7.12.0.Final
    • optaplanner-core
    • 5
    • NEW
    • NEW

      To explain Donato's score corruption.

      Basically, there was a shadow variable that got changed by the variable listener to another value and during the undo changed to a state different from the original one. This affected the score calculation later down the line (not immediatly).
      That happened in the move thread, and never in the solver thread as that move wasn't picked.

      Proposal A)
      Check it when the move threads retrieve a step operation from the solver thread.
      -> This is too late, in the donato bug it already crashed the solver thread upon finishing the step.

      Proposal B)
      Check it when the solver threads applies a winning step received from a move thread
      -> this would mean that all moves need to send a planning clone of their solution state (too costly)

            Unassigned Unassigned
            gdesmet@redhat.com Geoffrey De Smet (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: