-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52181/
-----------------------------------------------------------
Review request for mesos, Benjamin Mahler, Artem Harutyunyan, and Joris Van
Remoortere.
Bugs: MESOS-6234
https://issues.apache.org/jira/browse/MESOS-6234
Repository: mesos
Description
-------
There is a general pattern in the `SocketManager` in which most methods
will grab the mutex and then check if the socket to manage exists in
the `SocketManager`s mapping. If the socket does not exist, the
`SocketManager` silently returns.
This adds similar logic inside two critical sections of the `link`
codepath. If there are multiple calls to `link` in-flight at once,
this prevents sockets from being leaked into unmanaged callback loops.
Diffs
-----
3rdparty/libprocess/src/process.cpp 02a192529e53479d5a163fa6a20873674b51ee2c
3rdparty/libprocess/src/tests/process_tests.cpp
b9feec7e34cffe19e49035f8865b150f79258f54
Diff: https://reviews.apache.org/r/52181/diff/
Testing
-------
make check
3rdparty/libprocess/libprocess-tests
--gtest_filter="ProcessRemoteLinkTest.RemoteRelinkLoop" --gtest_repeat=5000
--gtest_break_on_failure
Investigating a consistent failure after ~80 iterations:
```
I0923 13:26:08.611300 2060546816 process.cpp:1446] Failed to link, connect:
Failed to connect to 0.0.0.0:51459: Can't assign requested address
```
Thanks,
Joseph Wu