-----------------------------------------------------------
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

Reply via email to