[ 
https://issues.apache.org/jira/browse/HIVE-2110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13761843#comment-13761843
 ] 

Azrael commented on HIVE-2110:
------------------------------

[~prasadm], [~cwsteinbach] I think socketTimeout is the basic function for 
connection and necessary. If you don't mind, I'd like to update rebased patch 
used for JDBC2. 
                
> Hive Client is indefenitely waiting for reading from Socket
> -----------------------------------------------------------
>
>                 Key: HIVE-2110
>                 URL: https://issues.apache.org/jira/browse/HIVE-2110
>             Project: Hive
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 0.5.0, 0.11.0
>         Environment: Hadoop 0.20.1, Hive0.5.0 and SUSE Linux Enterprise 
> Server 10 SP2 (i586) - Kernel 2.6.16.60-0.21-smp (5).
>            Reporter: Chinna Rao Lalam
>            Assignee: Prasad Mujumdar
>         Attachments: HIVE-2110.1.patch, HIVE-2110.patch
>
>
> Hive Client is indefenitely waiting for reading from Socket. Thread dump i  
> added below.
> Cause is:
>  
>       In the HiveClient, when client socket is created, the read timeout is 
> mentioned is 0. So the socket will indefinetly wait when the machine where 
> Hive Server is running is "shutdown" or "network is unplugged". The same may 
> not happen if the HiveServer alone is killed or gracefully shutdown. At this 
> time, client will get "connection reset exception". 
> Code in HiveConnection
> -----------------------------------
> {noformat}
> transport = new TSocket(host, port);
> TProtocol protocol = new TBinaryProtocol(transport); 
> client = new HiveClient(protocol);
> {noformat}
> In the Client side, they send the query and wait for the response 
> send_execute(query,id); recv_execute(); // place where client waiting is 
> initiated
> Thread dump:
> {noformat}
> "main" prio=10 tid=0x0000000040111000 nid=0x3641 runnable [0x00007f0d73f29000]
>       java.lang.Thread.State: RUNNABLE
>       at java.net.SocketInputStream.socketRead0(Native Method)
>       at java.net.SocketInputStream.read(SocketInputStream.java:129)
>       at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>       at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
>       at java.io.BufferedInputStream.read(BufferedInputStream.java:317) 
>       locked <0x00007f0d5d3f0828> (a java.io.BufferedInputStream)
>       at 
> org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:125)
>       at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
>       at 
> org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:314)
>       at 
> org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:262)
>       at 
> org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:192)
>       at 
> org.apache.hadoop.hive.service.ThriftHive$Client.recv_execute(ThriftHive.java:130)
>       at 
> org.apache.hadoop.hive.service.ThriftHive$Client.execute(ThriftHive.java:109) 
>       locked <0x00007f0d5d3f0878> (a org.apache.thrift.transport.TSocket)
>       at 
> org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:218)
>       at 
> org.apache.hadoop.hive.jdbc.HiveStatement.execute(HiveStatement.java:154)
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to