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

Matt McCline resolved THRIFT-5435.
----------------------------------
    Fix Version/s: 0.9.3.1
       Resolution: Duplicate

HIVE-25307

> Hive Server 2 crashes when Thrift library encounters particular security error
> ------------------------------------------------------------------------------
>
>                 Key: THRIFT-5435
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5435
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Java - Library
>            Reporter: Matt McCline
>            Priority: Major
>             Fix For: 0.9.3.1
>
>
> Portion of a blog called "NO DATA OR NO SASL DATA IN THE STREAM” ERROR IN 
> HIVESERVER2 LOG" by Eric Liu are below. NOTE: The web link causes the Apache 
> bot to remove it. You will need to Google it yourself.
> It addresses HIve Server 2 crashes our customers have seen and filed customer 
> service complaints on. The Apache Thrift library raises a fatal 
> RuntimeException when in my opinion it should raise a non-fatal Exception 
> instead.
> Portion of the blog:
> -----------------------------------------------------------------------------------------------------
> "I have seen lots of users complain about seeing lots of “No data or no sasl 
> data in the stream” errors in the HiveServer2 server log, yet they have not 
> noticed any performance impact nor query failure for Hive. So I think it 
> would be good to write a blog about the possible reason behind this to 
> clarify and remove the concerns that users have. The following shows the full 
> error message and stacktrace taken from HiveServer2 log:
>   
>  ERROR org.apache.thrift.server.TThreadPoolServer: [HiveServer2-Handler-Pool: 
> Thread-533556]: Error occurred during processing of message.
>  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.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:765)
>  at 
> org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory$1.run(HadoopThriftAuthBridge.java:762)
>  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:1687)
>  at 
> org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingTransportFactory.getTransport(HadoopThriftAuthBridge.java:762)
>  at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:268)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  at java.lang.Thread.run(Thread.java:745)
>  Caused by: org.apache.thrift.transport.TSaslTransportException: No data or 
> no sasl data in the stream
>  The likely cause is below:
>  # You have kerberos enabled
>  # You have multiple HiveServer2 hosts
>  # You have Load Balancer enabled in front of all HS2 servers that have such 
> errors
> If you have above setup, the error message you saw in HiveServer2 is harmless 
> and can be safely ignored. This just indicated that SASL negotiation failed 
> for one particular Hive client, which in this case would be the Load Balancer 
> who pings regularly to those HiveServer2’s to check for connectivity. Those 
> pings from LB were trying with PLAIN TCP connection, hence those messages.
> -----------------------------------------------------------------------------------------------------
> This is similar exception information from Hive Server 2 that crashed on our 
> customer's machine:
> 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
>  



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

Reply via email to