SolverProcess may not be 'solved' when there are several 'solve()' Activities...
SolverProcess may not be 'solved' when there are several 'solve()' Activities executed in parallel (#KMS-1126). 1. Two POLs diverge. => Solver Process is created ('draft'). 2. User 'Accept Decision' (Accept Solver) on all of them: 1) Two Accept Solvers are created in the Solver Process, one per divergence. 2) SolverProcess.solve() is called, on each Accept Solver: 1/ AcceptSolver.startSolving() () => Through solver_workflow 'Script (after)': SolverProcess.startSolving() => Solver Process is in 'solving' state. 2/ AcceptSolver.activate().solve() => One solve() Activity per Accept Solver. => AcceptSolver.succeed() => Through solver_workflow 'Script (after)': SolverProcess.succeed() The last step, 'SolverProcess.succeed()', will only be executed if and only if all the other Accept Solver of the Solver Process are in 'solved' state. However, if both Activities are executed in parallel, each Activity does not see the result of the other, and thus the other Accept Solver is still in 'solving' state. At the end the Solver Process may stay in 'solving' state. Thus try to update solver process workflow state after target solver finished its job by activity. Also try to update solver process workflow state when a new divergence occurs and if solver process is still in solving state.
Showing
Please register or sign in to comment