SharpRemote v0.5.166
The following sequence of events may lead to a child process being left for dead:
- Create a new OutOfProcessSilo with a restart on failure strategy
- Start silo
...
- child process crashes
- Dispose silo shortly (a few milliseconds) after the crash occurred
There exists a race condition inside the Dispose() implementation which causes the child process to be restarted eventually while the silo is being disposed. The problem does not occur every time, but I've been able to reproduce this behavior in synthetic tests with roughly a 25% success rate.