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

Reply via email to