Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(torture): mark comms stream non-blocking
tokio's unixstream is expected to be non-blocking. To quote the [doc]: The caller is responsible for ensuring that the stream is in non-blocking mode. Otherwise all I/O operations on the stream will block the thread, which will cause unexpected behavior. Non-blocking mode can be set using set_nonblocking. And oh boy we were observing unexpected behavior. One is that because of blocking of the thread polling some tokio worker thread we had problems with receiving from a oneshot channel which required some nasty workaround (fix is going to follow later on). Another problem this caused is a deadlock of both the supervisor and the agent when the former was waiting on the LLDB taking the backtrace of the agent. LLDB for unresearched reason was hanging itself. This changeset should finally fix this issue. [doc]: https://docs.rs/tokio/latest/tokio/net/struct.UnixStream.html#method.from_std
- Loading branch information