scikit-decide
scikit-decide copied to clipboard
Random crashes in MCTS solver
🐛 Bug
We observe some random crashes on MacOS Github runners, and even more seldomly on Linux. But if pytest is launched from a bash shell on Windows (default shell is Powershell), crashes become reproducible. This helped to find that this is caused by UCT test, all other tests pass.
AddressSanitizer on Linux reports a new/delete mismatch, here is the full log:
==103597==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x6020000d9450 in thread T0:
object passed to delete has wrong type:
size of the allocated type: 16 bytes;
size of the deallocated type: 1 bytes.
#0 0x7fd4d1069db7 in operator delete(void*, unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:172
#1 0x7fd4b584d0e0 in std::default_delete<skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::ExpandActionImplementation>::operator()(skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::ExpandActionImplementation*) const /usr/include/c++/11/bits/unique_ptr.h:85
#2 0x7fd4b584d0e0 in std::unique_ptr<skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::ExpandActionImplementation, std::default_delete<skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::ExpandActionImplementation> >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
#3 0x7fd4b584d0e0 in skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::~FullExpand() scikit-decide/cpp/src/hub/solver/mcts/impl/mcts_full_expand_impl.hh:297
#4 0x7fd4b584d108 in skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::~FullExpand() scikit-decide/cpp/src/hub/solver/mcts/impl/mcts_full_expand_impl.hh:297
#5 0x7fd4b55dac63 in std::default_delete<skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> > >::operator()(skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >*) const /usr/include/c++/11/bits/unique_ptr.h:85
#6 0x7fd4b55dac63 in std::unique_ptr<skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >, std::default_delete<skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> > > >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
#7 0x7fd4b55dac63 in skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup>::~MCTSSolver() scikit-decide/cpp/src/hub/solver/mcts/mcts.hh:248
#8 0x7fd4b55db0c8 in std::default_delete<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::operator()(skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup>*) const /usr/include/c++/11/bits/unique_ptr.h:85
#9 0x7fd4b55db0c8 in std::default_delete<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::operator()(skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup>*) const /usr/include/c++/11/bits/unique_ptr.h:79
#10 0x7fd4b55db0c8 in std::unique_ptr<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup>, std::default_delete<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> > >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
#11 0x7fd4b55db0c8 in skdecide::PyMCTSSolver::Implementation<skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup>::~Implementation() scikit-decide/cpp/src/hub/solver/mcts/py_mcts.hh:122
#12 0x7fd4b55db0c8 in skdecide::PyMCTSSolver::Implementation<skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup>::~Implementation() scikit-decide/cpp/src/hub/solver/mcts/py_mcts.hh:122
#13 0x7fd4b553811f in std::default_delete<skdecide::PyMCTSSolver::BaseImplementation>::operator()(skdecide::PyMCTSSolver::BaseImplementation*) const /usr/include/c++/11/bits/unique_ptr.h:85
#14 0x7fd4b553811f in std::unique_ptr<skdecide::PyMCTSSolver::BaseImplementation, std::default_delete<skdecide::PyMCTSSolver::BaseImplementation> >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
#15 0x7fd4b553811f in skdecide::PyMCTSSolver::~PyMCTSSolver() scikit-decide/cpp/src/hub/solver/mcts/py_mcts.hh:56
#16 0x7fd4b553811f in std::default_delete<skdecide::PyMCTSSolver>::operator()(skdecide::PyMCTSSolver*) const /usr/include/c++/11/bits/unique_ptr.h:85
#17 0x7fd4b553811f in std::default_delete<skdecide::PyMCTSSolver>::operator()(skdecide::PyMCTSSolver*) const /usr/include/c++/11/bits/unique_ptr.h:79
#18 0x7fd4b553811f in std::unique_ptr<skdecide::PyMCTSSolver, std::default_delete<skdecide::PyMCTSSolver> >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
#19 0x7fd4b553811f in pybind11::class_<skdecide::PyMCTSSolver>::dealloc(pybind11::detail::value_and_holder&) scikit-decide/cpp/sdk/pybind11/include/pybind11/pybind11.h:1568
#20 0x7fd4b54576a4 in pybind11::detail::clear_instance(_object*) scikit-decide/cpp/sdk/pybind11/include/pybind11/detail/class.h:400
#21 0x7fd4b54581de in pybind11_object_dealloc scikit-decide/cpp/sdk/pybind11/include/pybind11/detail/class.h:420
#22 0x55569174093a in _Py_Dealloc /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Objects/object.c:2215
#23 0x55569174093a in _Py_DECREF /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Include/object.h:478
#24 0x55569174093a in _Py_XDECREF /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Include/object.h:541
#25 0x55569174093a in dict_dealloc /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Objects/dictobject.c:1990
#26 0x555691743df4 in _Py_DECREF /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Include/object.h:478
#27 0x555691743df4 in subtype_clear /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Objects/typeobject.c:1143
#28 0x55569174f0f1 in delete_garbage.isra.28 /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Modules/gcmodule.c:948
#29 0x55569174f0f1 in collect /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Modules/gcmodule.c:1123
#30 0x5556917d1454 in collect_with_callback /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Modules/gcmodule.c:1240
#31 0x5556917e25ce in PyGC_Collect /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Modules/gcmodule.c:1844
#32 0x5556917efa43 in Py_FinalizeEx /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Python/pylifecycle.c:1219
#33 0x5556917efb87 in Py_Exit /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Python/pylifecycle.c:2291
#34 0x5556917efbca in handle_system_exit /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Python/pythonrun.c:684
#35 0x5556917efc0f in _PyErr_PrintEx /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Python/pythonrun.c:694
#36 0x55569173a401 in PyErr_Print /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Python/pythonrun.c:795
#37 0x55569173a401 in pyrun_simple_file /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Python/pythonrun.c:445
#38 0x55569173a401 in PyRun_SimpleFileExFlags /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Python/pythonrun.c:472
#39 0x5556917f1a08 in pymain_run_file /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Modules/main.c:391
#40 0x5556917f1a08 in pymain_run_python /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Modules/main.c:616
#41 0x5556917f1a08 in Py_RunMain /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Modules/main.c:695
#42 0x5556917f1ca8 in Py_BytesMain /home/builder/ktietz/cos6/ci_cos6/python_1622837047642/work/Modules/main.c:1141
#43 0x7fd4d09037ec in __libc_start_main ../csu/libc-start.c:332
0x6020000d9450 is located 0 bytes inside of 16-byte region [0x6020000d9450,0x6020000d9460)
allocated by thread T0 here:
#0 0x7fd4d1068f37 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99
#1 0x7fd4b58506e4 in std::_MakeUniq<skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::ExpandActionImplementation::Impl<skdecide::DistributionTransitionMode<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >, void> >::__single_object std::make_unique<skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::ExpandActionImplementation::Impl<skdecide::DistributionTransitionMode<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >, void>, std::function<std::pair<skdecide::PythonDomainProxyBase<skdecide::ParallelExecution>::Value, unsigned long> (skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>&, skdecide::PythonDomainProxyBase<skdecide::ParallelExecution>::State const&, unsigned long const*)>&>(std::function<std::pair<skdecide::PythonDomainProxyBase<skdecide::ParallelExecution>::Value, unsigned long> (skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>&, skdecide::PythonDomainProxyBase<skdecide::ParallelExecution>::State const&, unsigned long const*)>&) /usr/include/c++/11/bits/unique_ptr.h:962
#2 0x7fd4b58506e4 in skdecide::FullExpand<skdecide::MCTSSolver<skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>, skdecide::ParallelExecution, skdecide::DistributionTransitionMode, skdecide::DefaultTreePolicy, skdecide::FullExpand, skdecide::UCB1ActionSelector, skdecide::BestQValueActionSelector, skdecide::DefaultRolloutPolicy, skdecide::GraphBackup> >::FullExpand(std::function<std::pair<skdecide::PythonDomainProxyBase<skdecide::ParallelExecution>::Value, unsigned long> (skdecide::PythonDomainProxy<skdecide::ParallelExecution, skdecide::SingleAgent, skdecide::FullyObservable, skdecide::FullyControllable, skdecide::Markovian>&, skdecide::PythonDomainProxyBase<skdecide::ParallelExecution>::State const&, unsigned long const*)> const&) scikit-decide/cpp/src/hub/solver/mcts/impl/mcts_full_expand_impl.hh:283
#3 0x7fd4b5452fe9 in pybind11::detail::get_thread_state_unchecked() scikit-decide/cpp/sdk/pybind11/include/pybind11/cast.h:479
#4 0x7fd4b5452fe9 in pybind11::gil_scoped_acquire::gil_scoped_acquire() scikit-decide/cpp/sdk/pybind11/include/pybind11/pybind11.h:2139
#5 0x7ffc8a1c54af ([stack]+0x184af)
SUMMARY: AddressSanitizer: new-delete-type-mismatch ../../../../src/libsanitizer/asan/asan_new_delete.cpp:172 in operator delete(void*, unsigned long)
==103597==HINT: if you don't care about these errors you may set ASAN_OPTIONS=new_delete_type_mismatch=0
==103597==ABORTING
I checked locally on windows from git bash with scikit-decide 0.9.7 from pypi. The bug is still there. To reproduce:
- on windows with git bash, create a python virtual environment with scikit-decide 0.9.7 + gym + pytest + simplejson
- edit "tests/solvers/cpp/test_cpp_solvers.py" to let only "uct" as tested solver, and remove the pytest.skip
- run it with
pytest tests/solvers/cpp/test_cpp_solvers.py ../test_skdecide/.
Error message:
..Windows fatal exception: code 0xc0000374
Current thread 0x00001d04 (most recent call first):
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\_vendor\packaging\version.py", line 353 in _cmpkey
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\_vendor\packaging\version.py", line 230 in __init__
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\_vendor\packaging\specifiers.py", line 458 in _compare_greater_than_equal
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\_vendor\packaging\specifiers.py", line 271 in wrapped
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\_vendor\packaging\specifiers.py", line 180 in contains
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\_vendor\packaging\specifiers.py", line 726 in <genexpr>
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\_vendor\packaging\specifiers.py", line 726 in contains
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\__init__.py", line 3078 in __contains__
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\__init__.py", line 769 in resolve
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\__init__.py", line 2433 in require
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pkg_resources\__init__.py", line 2410 in load
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\skdecide\utils.py", line 65 in _load_registered_entry
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\skdecide\utils.py", line 96 in load_registered_solver
File "C:\Users\nolwe\Projects\scikit-decide\tests\solvers\cpp\test_cpp_solvers.py", line 395 in test_solver_cpp
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\python.py", line 194 in pytest_pyfunc_call
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_callers.py", line 80 in _multicall
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_manager.py", line 112 in _hookexec
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_hooks.py", line 433 in __call__
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\python.py", line 1792 in runtest
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\runner.py", line 169 in pytest_runtest_call
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_callers.py", line 80 in _multicall
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_manager.py", line 112 in _hookexec
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_hooks.py", line 433 in __call__
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\runner.py", line 262 in <lambda>
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\runner.py", line 341 in from_call
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\runner.py", line 262 in call_runtest_hook
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\runner.py", line 222 in call_and_report
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\runner.py", line 133 in runtestprotocol
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\runner.py", line 114 in pytest_runtest_protocol
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_callers.py", line 80 in _multicall
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_manager.py", line 112 in _hookexec
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_hooks.py", line 433 in __call__
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\main.py", line 350 in pytest_runtestloop
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_callers.py", line 80 in _multicall
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_manager.py", line 112 in _hookexec
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_hooks.py", line 433 in __call__
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\main.py", line 325 in _main
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\main.py", line 271 in wrap_session
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\main.py", line 318 in pytest_cmdline_main
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_callers.py", line 80 in _multicall
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_manager.py", line 112 in _hookexec
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\pluggy\_hooks.py", line 433 in __call__
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\config\__init__.py", line 170 in main
File "c:\users\nolwe\projects\test_skdecide\skdecide97_py37_venv\lib\site-packages\_pytest\config\__init__.py", line 192 in console_main
File "C:\Users\nolwe\Projects\test_skdecide\skdecide97_py37_venv\Scripts\pytest.exe\__main__.py", line 9 in <module>
File "C:\Users\nolwe\Progs\Miniconda3\lib\runpy.py", line 85 in _run_code
File "C:\Users\nolwe\Progs\Miniconda3\lib\runpy.py", line 193 in _run_module_as_main
Also visible on a workflow when i reactivated the concerned test: https://github.com/nhuet/scikit-decide/actions/runs/6433572669/job/17471581478#step:12:728
For the moment I have no clue what the reason is, I'm still investigating...
The bug seems to disappear since last time i checked (i tried the procedure on windows git_bash as described above). Can be closed.