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

Details

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

    Description

      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)

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated: