-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/41253/
-----------------------------------------------------------
(Updated Dec. 14, 2015, 6:13 p.m.)
Review request for mesos and Joris Van Remoortere.
Changes
-------
updated description to make the change more understandable.
Bugs: MESOS-3773
https://issues.apache.org/jira/browse/MESOS-3773
Repository: mesos
Description (updated)
-------
libprocess Socket shares the ownership of the file descriptor with libevent. In
the destructor of the libprocess libevent_ssl socket, we call ssl shutdown
which is executed asynchronously. This causes the libprocess socket file
descriptor to be closed (and possibly reused) when the same file descriptor
could be used by libevent/ssl. Since we set the shutdown options as
SSL_RECEIVED_SHUTDOWN, we leave the any write operations to continue with
possibly closed file descriptor.
This change is to ensure that both send and receivesides of the socket are
terminated so that we avoid the race condition between libevent continuing with
writes when the libprocess socket is closed.
An alternate/better solution is to ::dup the libprocess socket's file
descriptor and then manage its life cycle. This solution is a little more
involved and needs more time.
Diffs
-----
3rdparty/libprocess/src/libevent_ssl_socket.cpp
55b91dd47bb5bd5e97147d0af91c7899fd42702c
Diff: https://reviews.apache.org/r/41253/diff/
Testing
-------
make check.
Thanks,
Jojy Varghese