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

Matt McCline updated HIVE-25307:
--------------------------------
    Attachment: hive-thrift-fix-02-3_1.patch

> Hive Server 2 crashes when Thrift library encounters particular security 
> protocol issue
> ---------------------------------------------------------------------------------------
>
>                 Key: HIVE-25307
>                 URL: https://issues.apache.org/jira/browse/HIVE-25307
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Matt McCline
>            Assignee: Matt McCline
>            Priority: Critical
>              Labels: pull-request-available
>         Attachments: hive-thrift-fix-02-3_1.patch, 
> hive-thrift-fix2-01-3_1.patch
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> A RuntimeException is thrown by the Thrift library that causes Hive Server 2 
> to crash on our customer's machine. If you Google this the exception has been 
> reported a couple of times over the years but not fixed. A blog (see 
> references below) says it is an occasional security protocol issue between 
> Hive Server 2 and a proxy like a Gateway.
> One challenge in the older 0.9.3 Thrift version was the Thrift 
> TTransportFactory getTransport method declaration had throws no Exceptions. 
> Hence the likely choice of RuntimeException. But that Exception is fatal to 
> Hive Server 2.
> The proposed fix is a work around is we catch RuntimeException in the inner 
> class TUGIAssumingTransportFactory of the HadoopThriftAuthBridge class in 
> Hive Server 2.  And throw a throw the RuntimeException's (inner) cause (e.g. 
> TSaslTransportException) as a TTransportException.
> Once the Thrift library stops throwing RuntimeException or we catch fatal 
> Throwable exceptions in the Thrift library's TThreadPoolServer's inner class 
> WorkerProcess run method and display them, the RuntimeException try/catch 
> clause can be removed.
> ExceptionClassName:
>  java.lang.RuntimeException
>  ExceptionStackTrace:
>  java.lang.RuntimeException: 
> org.apache.thrift.transport.TSaslTransportException: No data or no sasl data 
> in the stream
>               at 
> org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:219)
>               at 
> org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:694)
>               at 
> org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:691)
>               at java.security.AccessController.doPrivileged(Native Method)
>               at javax.security.auth.Subject.doAs(Subject.java:360)
>               at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1710)
>               at 
> org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory.getTransport(HadoopThriftAuthBridge.java:691)
>               at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:269)
>               at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>               at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>               at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.thrift.transport.TSaslTransportException: No data or no 
> sasl data in the stream
>               at 
> org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:326)
>               at 
> org.apache.thrift.transport.TSaslServerTransport.open(TSaslServerTransport.java:41)
>               at 
> org.apache.thrift.transport.TSaslServerTransport$Factory.getTransport(TSaslServerTransport.java:216)
>               ... 10 more
>  
> References:
> [Hive server 2 thrift error - Cloudera Community - 
> 34293|https://community.cloudera.com/t5/Support-Questions/Hive-server-2-thrift-error/td-p/34293]
> Eric Lin blog "“NO DATA OR NO SASL DATA IN THE STREAM” ERROR IN HIVESERVER2 
> LOG"
> HIVE-12754 AuthTypes.NONE cause exception after HS2 start - ASF JIRA 
> (apache.org)
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to