----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/47091/ -----------------------------------------------------------
Review request for mesos and Anand Mazumdar. Bugs: MESOS-4658 https://issues.apache.org/jira/browse/MESOS-4658 Repository: mesos Description ------- Per the details in MESOS-4658, the `http::Connection` abstraction is prone to the deadlock of `process::wait`ing on itself. This occurs when the `http::internal::ConnectionProcess` exposes a Future on which the caller binds a copy of `http::Connection`. When completing the Future, the Future clears its callbacks within the execution context of the `http::internal::ConnectionProcess`. If the last copy of the `http::Connection` was present within one of the callbacks, the `http::internal::ConnectionProcess` will wait on itself, leading to a deadlock. This surfaces a general pattern of having libprocess manage a Process when it cannot be guaranteed that the Process will be waited on by another execution context. Diffs ----- 3rdparty/libprocess/src/http.cpp 48f91d01555e760b1c4fd2cde684168d65f75e57 Diff: https://reviews.apache.org/r/47091/diff/ Testing ------- Removed the hack put in place within the http::get path to validate the fix. Thanks, Ben Mahler