[ 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)