Hello Daniel Becker, Impala Public Jenkins,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/22368

to look at the new patch set (#2).

Change subject: IMPALA-13680: Avoid flush() when closing TSSLSocket
......................................................................

IMPALA-13680: Avoid flush() when closing TSSLSocket

Closing the transports could hang in TAcceptQueueServer if there was
an error during SSL handshake. As the TSSLSocket is wrapped in
TBufferedTransport and TBufferedTransport::close() calls flush(),
TSSLSocket::flush() was also called that led to trying again the
handshake in an unclean state. This led to hanging indefinitely with
OpenSSL 3.2. Another potential error is that if flush throws an
exception then the underlying TTransport's close() wont' be called.

Ideally this would be solved in Thrift (THRIFT-5846). As quick
fix this change adds a subclass for TBufferedTransport that doesn't
call flush(). This is safe to do as generated TProcessor
subclasses call flush() every time when the client/server sends
a message.

Testing:
- the issue was caught by thrift-server-test/KerberosOnAndOff
  and TestClientSsl::test_ssl hanging till killed

Change-Id: I4879a1567f7691711d73287269bf87f2946e75d2
---
M be/src/rpc/auth-provider.h
M be/src/rpc/authentication.cc
M be/src/rpc/thrift-client.h
M be/src/rpc/thrift-server.h
M be/src/transport/TSaslServerTransport.cpp
5 files changed, 28 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/68/22368/2
--
To view, visit http://gerrit.cloudera.org:8080/22368
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I4879a1567f7691711d73287269bf87f2946e75d2
Gerrit-Change-Number: 22368
Gerrit-PatchSet: 2
Gerrit-Owner: Csaba Ringhofer <[email protected]>
Gerrit-Reviewer: Daniel Becker <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>

Reply via email to