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

Aihua Xu commented on HIVE-14227:
---------------------------------

I spent some time understanding the issue. Seems the problem comes from 
disconnection between connection and session. For beeline client, we are 
creating a connection and then open a session on top of it. Then we close 
session and destroy the connection. That's fine. While if a connection 
(connection2) is created and we make calls with an existing session, that's 
legal. But if the other connection (connection1) in which session is opened 
gets destroyed, the session gets destroyed as well and we will see invalid 
sessionHandle from connection2.  Hope my understanding is correct. 

I'm thinking of the following approach: similar to a call openSession(), we can 
add a call bindSession(sessionHandle) for a new connection with an existing 
session handle. Then each connection will be aware of the session and the 
following calls can be called without sessionHandle. Also the session will 
remember associated connections with it and session can be really closed when 
there is no connections.

> Investigate invalid SessionHandle and invalid OperationHandle
> -------------------------------------------------------------
>
>                 Key: HIVE-14227
>                 URL: https://issues.apache.org/jira/browse/HIVE-14227
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2
>    Affects Versions: 2.0.0
>            Reporter: Aihua Xu
>            Assignee: Aihua Xu
>
> There are the following warnings. 
> {noformat}
> WARN  org.apache.hive.service.cli.thrift.ThriftCLIService: 
> [HiveServer2-Handler-Pool: Thread-55]: Error executing statement:
> org.apache.hive.service.cli.HiveSQLException: Invalid SessionHandle: 
> SessionHandle [1bc00251-64e9-4a95-acb7-a7f53f773528]
>         at 
> org.apache.hive.service.cli.session.SessionManager.getSession(SessionManager.java:318)
>         at 
> org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:258)
>         at 
> org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:506)
>         at 
> org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1313)
>         at 
> org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1298)
>         at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
> {noformat}
> {noformat}
> WARN  org.apache.hive.service.cli.thrift.ThriftCLIService: 
> [HiveServer2-Handler-Pool: Thread-1060]: Error closing operation:
> org.apache.hive.service.cli.HiveSQLException: Invalid OperationHandle: 
> OperationHandle [opType=EXECUTE_STATEMENT, 
> getHandleIdentifier()=13d930dd-316c-4c09-9f44-fee5f483e73d]
>         at 
> org.apache.hive.service.cli.operation.OperationManager.getOperation(OperationManager.java:185)
>         at 
> org.apache.hive.service.cli.CLIService.closeOperation(CLIService.java:408)
>         at 
> org.apache.hive.service.cli.thrift.ThriftCLIService.CloseOperation(ThriftCLIService.java:664)
>         at 
> org.apache.hive.service.cli.thrift.TCLIService$Processor$CloseOperation.getResult(TCLIService.java:1513)
>         at 
> org.apache.hive.service.cli.thrift.TCLIService$Processor$CloseOperation.getResult(TCLIService.java:1498)
>         at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
>         at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to