Skip to content

OutOfProcessSilo.Dispose() sometimes leaves the child process running #66

@Kittyfisto

Description

@Kittyfisto

SharpRemote v0.5.166

The following sequence of events may lead to a child process being left for dead:

  1. Create a new OutOfProcessSilo with a restart on failure strategy
  2. Start silo
    ...
  3. child process crashes
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions