[Bug] Python tests using the solver timing out
Python tests using the solver sometimes fail and result in timeouts. The crashes are somewhat random and only happen with the Release version.
This problem does not manifest itself in Debug. Adding messages in TYSolver::solve with OMessageManager makes the problem go away whereas adding messages in the python code called by the test does not. Moreover, when adding messages in the python code, the program seems to never get out of TYSolver::solve. Hence the problem seems to be localized in th C++ code (or maybe the cython interface).
The fact that messages in the C++ code are enough to make the problem go away point to a possible race condition.
List of failing tests (possibly non-exhaustive):
- 59 - test_solve_machine_reflexion_batiment (Timeout)
- 62 - test_solve_recepteurs_machine_cubique (Timeout)
- 64 - test_solve_recepteurs_machine_cubique_ventilateur (Timeout)
- 66 - test_solve_recepteurs_machine_dans_batiment_cubique (Timeout)
- 69 - test_solve_recepteurs_machine_dans_batiment_cylindrique_avec_ecran (Timeout)
- 72 - test_solve_recepteurs_sol_machine_cubique_ventilateur (Timeout)
- 74 - test_solve_recepteurs_sol_machine_dans_batiment_cubique (Timeout)
- 81 - test_solve_recepteurs_sol_source_dans_batiment_cubique_fenetre (Timeout)
- 86 - test_solve_recepteurs_source_dans_batiment_cubique_avec_ecran (Timeout)
- 87 - test_solve_recepteurs_source_dans_batiment_cubique_fenetre (Timeout)
- 91 - test_solve_sans_effet_sol_machine_cubique_bouche_aeration (Timeout)
- 92 - test_solve_sans_effet_sol_machine_cubique_ventilateur (Timeout)
- 93 - test_solve_sans_effet_sol_machine_cylindrique (Timeout)
- 95 - test_solve_sans_effet_sol_machine_dans_batiment_cubique_avec_ecran (Timeout)
- 100 - test_solve_sans_effet_sol_source_dans_batiment_cubique_avec_ecran (Timeout)
- 101 - test_solve_sans_effet_sol_source_dans_batiment_cubique_fenetre (Timeout)
- 102 - test_solve_sans_effet_sol_source_dans_batiment_cylindrique (Timeout)
- 103 - test_solve_sans_effet_sol_source_dans_batiment_cylindrique_avec_ecran (Timeout)
Edited by Fabien Diot