You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Till Toenshoff <to...@me.com> on 2018/02/02 05:50:08 UTC

Review Request 65474: Updated socket shutdown to return SocketError.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/65474/
-----------------------------------------------------------

Review request for mesos, Andrei Budnik and Benjamin Mahler.


Bugs: MESOS-8513
    https://issues.apache.org/jira/browse/MESOS-8513


Repository: mesos


Description
-------

Socket::shutdown returns SocketError allowing for higher level
functions to have more control over logging errors where needed.
Also switches SocketManager::close's shutdown failure logging
back to ERROR level as we are now able to filter out expected
failures.


Diffs
-----

  3rdparty/libprocess/include/process/socket.hpp ae6154d5d142f65352e00f37b4e66d0b62fdc3c2 
  3rdparty/libprocess/src/http.cpp cc41fa6f671cf029a46722299eded1a27da210d3 
  3rdparty/libprocess/src/libevent_ssl_socket.hpp 640fa676ef570f7fcf3f96249662837497a2c76c 
  3rdparty/libprocess/src/libevent_ssl_socket.cpp 521b0cfbccd3599524b1407ef70880f4538941df 
  3rdparty/libprocess/src/process.cpp ba9bc291bb6741e32b3a066fe90771311d21852a 
  3rdparty/libprocess/src/tests/ssl_tests.cpp b1a0ea614d7483e683ac056cf822ce816221babb 


Diff: https://reviews.apache.org/r/65474/diff/1/


Testing
-------

make check, visual logging inspection


Thanks,

Till Toenshoff


Re: Review Request 65474: Updated socket shutdown to return SocketError.

Posted by Benjamin Mahler <bm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/65474/#review196756
-----------------------------------------------------------


Ship it!





3rdparty/libprocess/src/libevent_ssl_socket.cpp
Line 168 (original), 168 (patched)
<https://reviews.apache.org/r/65474/#comment276598>

    Note that here we should probably just directly call shutdown on the fd (in your second patch).


- Benjamin Mahler


On Feb. 2, 2018, 5:50 a.m., Till Toenshoff wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/65474/
> -----------------------------------------------------------
> 
> (Updated Feb. 2, 2018, 5:50 a.m.)
> 
> 
> Review request for mesos, Andrei Budnik and Benjamin Mahler.
> 
> 
> Bugs: MESOS-8513
>     https://issues.apache.org/jira/browse/MESOS-8513
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Socket::shutdown returns SocketError allowing for higher level
> functions to have more control over logging errors where needed.
> Also switches SocketManager::close's shutdown failure logging
> back to ERROR level as we are now able to filter out expected
> failures.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/include/process/socket.hpp ae6154d5d142f65352e00f37b4e66d0b62fdc3c2 
>   3rdparty/libprocess/src/http.cpp cc41fa6f671cf029a46722299eded1a27da210d3 
>   3rdparty/libprocess/src/libevent_ssl_socket.hpp 640fa676ef570f7fcf3f96249662837497a2c76c 
>   3rdparty/libprocess/src/libevent_ssl_socket.cpp 521b0cfbccd3599524b1407ef70880f4538941df 
>   3rdparty/libprocess/src/process.cpp ba9bc291bb6741e32b3a066fe90771311d21852a 
>   3rdparty/libprocess/src/tests/ssl_tests.cpp b1a0ea614d7483e683ac056cf822ce816221babb 
> 
> 
> Diff: https://reviews.apache.org/r/65474/diff/3/
> 
> 
> Testing
> -------
> 
> make check, visual logging inspection
> 
> 
> Thanks,
> 
> Till Toenshoff
> 
>


Re: Review Request 65474: Updated socket shutdown to return SocketError.

Posted by Till Toenshoff <to...@me.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/65474/#review196688
-----------------------------------------------------------




3rdparty/libprocess/include/process/socket.hpp
Line 193 (original), 193 (patched)
<https://reviews.apache.org/r/65474/#comment276461>

    This one should be a `SocketError()`


- Till Toenshoff


On Feb. 2, 2018, 5:50 a.m., Till Toenshoff wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/65474/
> -----------------------------------------------------------
> 
> (Updated Feb. 2, 2018, 5:50 a.m.)
> 
> 
> Review request for mesos, Andrei Budnik and Benjamin Mahler.
> 
> 
> Bugs: MESOS-8513
>     https://issues.apache.org/jira/browse/MESOS-8513
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Socket::shutdown returns SocketError allowing for higher level
> functions to have more control over logging errors where needed.
> Also switches SocketManager::close's shutdown failure logging
> back to ERROR level as we are now able to filter out expected
> failures.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/include/process/socket.hpp ae6154d5d142f65352e00f37b4e66d0b62fdc3c2 
>   3rdparty/libprocess/src/http.cpp cc41fa6f671cf029a46722299eded1a27da210d3 
>   3rdparty/libprocess/src/libevent_ssl_socket.hpp 640fa676ef570f7fcf3f96249662837497a2c76c 
>   3rdparty/libprocess/src/libevent_ssl_socket.cpp 521b0cfbccd3599524b1407ef70880f4538941df 
>   3rdparty/libprocess/src/process.cpp ba9bc291bb6741e32b3a066fe90771311d21852a 
>   3rdparty/libprocess/src/tests/ssl_tests.cpp b1a0ea614d7483e683ac056cf822ce816221babb 
> 
> 
> Diff: https://reviews.apache.org/r/65474/diff/1/
> 
> 
> Testing
> -------
> 
> make check, visual logging inspection
> 
> 
> Thanks,
> 
> Till Toenshoff
> 
>


Re: Review Request 65474: Updated socket shutdown to return SocketError.

Posted by Till Toenshoff <to...@me.com>.

> On Feb. 3, 2018, 12:41 a.m., Andrei Budnik wrote:
> > 3rdparty/libprocess/include/process/socket.hpp
> > Line 192 (original), 193 (patched)
> > <https://reviews.apache.org/r/65474/diff/3/?file=1952336#file1952336line193>
> >
> >     What about returning `Nothing()` for not connected sockets here:
> >     ```
> >     if (::shutdown(s, how) < 0 && errno != ENOTCONN) {
> >     ```
> >     and in `LibeventSSLSocketImpl::shutdown()`?
> >     
> >     It will be 2-liner change (excluding `#ifdef __WINDOWS__` stuff).
> >     
> >     We already have such errno check in https://github.com/apache/mesos/blob/master/3rdparty/stout/include/stout/os/windows/close.hpp#L40-L43

We'ld still need `ENOTCONN` vs. `WSANOTCONN` `#ifdef WINDOWS` nastynes as on this (non stout) level we have to. We would also need to make assumptions about the expected state. IMO that would be ok here: https://github.com/apache/mesos/blob/master/3rdparty/libprocess/src/libevent_ssl_socket.cpp#L168 cause we have context allowing to assert no existing connection on that socket. But it is not ok here: https://github.com/apache/mesos/blob/master/3rdparty/libprocess/include/process/socket.hpp#L192 cause we just don't know what to expect - that needs to be decided on higher levels.


- Till


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/65474/#review196769
-----------------------------------------------------------


On Feb. 2, 2018, 5:50 a.m., Till Toenshoff wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/65474/
> -----------------------------------------------------------
> 
> (Updated Feb. 2, 2018, 5:50 a.m.)
> 
> 
> Review request for mesos, Andrei Budnik and Benjamin Mahler.
> 
> 
> Bugs: MESOS-8513
>     https://issues.apache.org/jira/browse/MESOS-8513
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Socket::shutdown returns SocketError allowing for higher level
> functions to have more control over logging errors where needed.
> Also switches SocketManager::close's shutdown failure logging
> back to ERROR level as we are now able to filter out expected
> failures.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/include/process/socket.hpp ae6154d5d142f65352e00f37b4e66d0b62fdc3c2 
>   3rdparty/libprocess/src/http.cpp cc41fa6f671cf029a46722299eded1a27da210d3 
>   3rdparty/libprocess/src/libevent_ssl_socket.hpp 640fa676ef570f7fcf3f96249662837497a2c76c 
>   3rdparty/libprocess/src/libevent_ssl_socket.cpp 521b0cfbccd3599524b1407ef70880f4538941df 
>   3rdparty/libprocess/src/process.cpp ba9bc291bb6741e32b3a066fe90771311d21852a 
>   3rdparty/libprocess/src/tests/ssl_tests.cpp b1a0ea614d7483e683ac056cf822ce816221babb 
> 
> 
> Diff: https://reviews.apache.org/r/65474/diff/3/
> 
> 
> Testing
> -------
> 
> make check, visual logging inspection
> 
> 
> Thanks,
> 
> Till Toenshoff
> 
>


Re: Review Request 65474: Updated socket shutdown to return SocketError.

Posted by Andrei Budnik <ab...@mesosphere.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/65474/#review196769
-----------------------------------------------------------




3rdparty/libprocess/include/process/socket.hpp
Line 192 (original), 193 (patched)
<https://reviews.apache.org/r/65474/#comment276610>

    What about returning `Nothing()` for not connected sockets here:
    ```
    if (::shutdown(s, how) < 0 && errno != ENOTCONN) {
    ```
    and in `LibeventSSLSocketImpl::shutdown()`?
    
    It will be 2-liner change (excluding `#ifdef __WINDOWS__` stuff).
    
    We already have such errno check in https://github.com/apache/mesos/blob/master/3rdparty/stout/include/stout/os/windows/close.hpp#L40-L43


- Andrei Budnik


On Feb. 2, 2018, 5:50 a.m., Till Toenshoff wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/65474/
> -----------------------------------------------------------
> 
> (Updated Feb. 2, 2018, 5:50 a.m.)
> 
> 
> Review request for mesos, Andrei Budnik and Benjamin Mahler.
> 
> 
> Bugs: MESOS-8513
>     https://issues.apache.org/jira/browse/MESOS-8513
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Socket::shutdown returns SocketError allowing for higher level
> functions to have more control over logging errors where needed.
> Also switches SocketManager::close's shutdown failure logging
> back to ERROR level as we are now able to filter out expected
> failures.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/include/process/socket.hpp ae6154d5d142f65352e00f37b4e66d0b62fdc3c2 
>   3rdparty/libprocess/src/http.cpp cc41fa6f671cf029a46722299eded1a27da210d3 
>   3rdparty/libprocess/src/libevent_ssl_socket.hpp 640fa676ef570f7fcf3f96249662837497a2c76c 
>   3rdparty/libprocess/src/libevent_ssl_socket.cpp 521b0cfbccd3599524b1407ef70880f4538941df 
>   3rdparty/libprocess/src/process.cpp ba9bc291bb6741e32b3a066fe90771311d21852a 
>   3rdparty/libprocess/src/tests/ssl_tests.cpp b1a0ea614d7483e683ac056cf822ce816221babb 
> 
> 
> Diff: https://reviews.apache.org/r/65474/diff/3/
> 
> 
> Testing
> -------
> 
> make check, visual logging inspection
> 
> 
> Thanks,
> 
> Till Toenshoff
> 
>