----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/66863/ -----------------------------------------------------------
(Updated April 30, 2018, 11:47 p.m.) Review request for mesos, Benjamin Hindman, Benno Evers, and Chun-Hung Hsiao. Changes ------- Updated per chun's suggestion. Bugs: MESOS-8594 https://issues.apache.org/jira/browse/MESOS-8594 Repository: mesos Description ------- Currently, the socket send path is implemented using an asynchronous loop with callbacks. Without using `process::loop`, this pattern is prone to a stack overflow in the case that all asynchronous calls complete synchronously. This is possible with sockets if the socket is always ready for writing. Users have reported the crash in both MESOS-8594 and MESOS-8834, so the stack overflow is encountered in practice. This patch updates the send path to leverage `process::loop`, which is supposed to prevent stack overflows in asynchronous loops. However, it is still possible for `process::loop` to stack overflow due to MESOS-8852. In practice, I expect that even without MESOS-8852 fixed, users won't see any stack overflows in the send path. Diffs (updated) ----- 3rdparty/libprocess/src/process.cpp 21931db5edd7ecf0f4620dba42a5521f48cd47a3 Diff: https://reviews.apache.org/r/66863/diff/2/ Changes: https://reviews.apache.org/r/66863/diff/1-2/ Testing ------- make check Thanks, Benjamin Mahler