This is an automated email from the ASF dual-hosted git repository. bmahler pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 44bb7777450e3b585cb1e821a2fd6915528b1cac Author: Benjamin Mahler <[email protected]> AuthorDate: Mon Apr 20 14:28:33 2020 -0400 Fixed a bug where the openssl socket can block forever. Using the zero byte read trick against io::read is problematic since io::read aims to provide consistent behavior across POSIX and Windows by returning immediately. Now that io::poll for reads is implemented, we can fix this by removing the Windows specialization and just using io::poll. Review: https://reviews.apache.org/r/72406 --- 3rdparty/libprocess/src/ssl/openssl_socket.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/3rdparty/libprocess/src/ssl/openssl_socket.cpp b/3rdparty/libprocess/src/ssl/openssl_socket.cpp index 3f4dab6..f03a34f 100644 --- a/3rdparty/libprocess/src/ssl/openssl_socket.cpp +++ b/3rdparty/libprocess/src/ssl/openssl_socket.cpp @@ -577,14 +577,7 @@ Future<std::shared_ptr<SocketImpl>> OpenSSLSocketImpl::accept() // socket to become readable. We will then MSG_PEEK it to test // whether we want to dispatch as SSL or non-SSL. if (openssl::flags().support_downgrade) { -#ifdef __WINDOWS__ - // Since there is no `io::poll` on Windows, we instead make - // a 0-byte read, which will only return once there is something - // to read. - return io::read(socket->get(), nullptr, 0) -#else return io::poll(socket->get(), process::io::READ) -#endif // __WINDOWS__ .then([weak_self, socket]() -> Future<ControlFlow<Nothing>> { std::shared_ptr<OpenSSLSocketImpl> self(weak_self.lock());
