[ 
https://issues.apache.org/jira/browse/IMPALA-11674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wenzhe Zhou updated IMPALA-11674:
---------------------------------
    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.

  was:
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() 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.


> Fix IsPeekTimeoutTException and IsReadTimeoutTException for thrift-0.16.0
> -------------------------------------------------------------------------
>
>                 Key: IMPALA-11674
>                 URL: https://issues.apache.org/jira/browse/IMPALA-11674
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 4.2.0
>            Reporter: Wenzhe Zhou
>            Assignee: Riza Suminto
>            Priority: Major
>
> 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.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to