Closed DivineThreepwood closed 6 years ago
I think the issue is that the activation of a unit remote is not synchronized by Units. Therefore if one thread creates a new remote without getting to activate it before another thread takes over and then the second thread can return the remote inactive. As a solution I would propose that Units also activates units if they are inactive. But for this to work activate has to be implemented robustly anywhere which it currently probably is not. Robustly means that it is synchronized and can be called multiple times without causing errors. E.g. the RSBRemoteService currently would reset the connectionState to connecting.
The unit action is not synchronized within the unit pool. This does not cause into any performance issues because the activation does not wait for any states anymore. Hopefully this issue is fixed now. Thanks for the nice error analysis @pLeminoq
did not occur again :)
The issue is still not solved in which the scene manager test are failing during waitForData because the unit pool is returning a deactivated remote.
Using the lock for the reset and shutdown did not solve the issue.
Scene tests are know disabled again but we should highly investigate time to solve this issue and enable the tests afterwards.