hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sankar Hariappan (Jira)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-25307) Hive Server 2 crashes when Thrift library encounters particular security protocol issue
Date Mon, 26 Jul 2021 04:30:00 GMT

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

Sankar Hariappan updated HIVE-25307:
------------------------------------
    Component/s: HiveServer2

> 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
>          Components: HiveServer2
>            Reporter: Matt McCline
>            Assignee: Matt McCline
>            Priority: Critical
>              Labels: pull-request-available
>             Fix For: 4.0.0
>
>         Attachments: hive-thrift-fix2-03-3_1.patch, hive-thrift-fix2-04-3_1.patch, hive-thrift-fix2-05-3_1.patch
>
>          Time Spent: 50m
>  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)

Mime
View raw message