Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 4.2.0
-
None
-
ghx-label-6
Description
IMPALA-7825 upgraded Thrift version from 0.9.3 to 0.11.0, IMPALA-11384 upgraded CPP Thrift components from 0.11.0 to Thrift-0.16.0.
Functions IsPeekTimeoutTException() and IsReadTimeoutTException() in be/src/rpc/thrift-util.cc make assumption about the implementation of read(), peek(), write() and write_partial() in TSocket.cpp and TSSLSocket.cpp. The functions read() and peek() in TSSLSocket.cpp were changed in version 0.11.0 and 0.16.0 to throw different exception for timeout. This cause IsPeekTimeoutTException() and IsReadTimeoutTException() to return wrong value after upgrade thrift, which in turn cause TAcceptQueueServer::Peek() to rethrow the exception to caller TAcceptQueueServer::run() and make TAcceptQueueServer::run() to close the connection.