You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This error happens during the "reconstitute" operation, i.e. when the slave is added, and here's why:
The "reconstitute" operation consists of two steps:
Establish connections with all added slaves (includes sending HELLO and SETUP).
Update the list of slave network addresses and send it to all slaves (SET_PEERS).
Currently, if the first step fails, it will still continue to the second step. There, it will attempt to send the SET_PEERS message to the dead slave too, leading to the [debug] message in the output above. The consequent exception causes the final error message, because it kills the communication thread, thus breaking the promise to the main thread.
There are in fact three bugs here:
The operation continues to the second step, when it probably shouldn't.
In the second step, we attempt to send a command to a dead slave.
The error which is finally printed does not in any way hint at what went wrong, or even point us in the right direction. (At least, it should be something like the debug message.)
This fixes the first problem described in issue viproma#22. Now, if any of the
slaves hang/crash during the "add slaves" step, the whole simulation is
terminated.
If a slave hangs/crashes during its
fmiInstantiateSlave()
call, coralmaster gives the following rather unhelpful information:It should inform the user that it failed because of a timeout.
Running with a single slave named "sine" and debug/trace info on, we get:
The text was updated successfully, but these errors were encountered: