Matt McCline created HIVE-25307:
-----------------------------------
Summary: 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
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 is the Thrift TTransportFactory getTransport method declaration
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 that catches RuntimeException in Hive Server
2, saves the Exception cause in a dummy TTransport object, and throws the cause
when TTransport's open method is called later.
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)