[
https://issues.apache.org/jira/browse/HIVE-14227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15387725#comment-15387725
]
Aihua Xu commented on HIVE-14227:
---------------------------------
+ [~szehon] who had worked on that before. +[~romainr] from thrift client (HUE)
perspective.
>From what I understand to thrift client making hiveserver2 call: after opening
>a session and creating multiple connections, we are passing the same session
>over the connections. The issue is, the connection doesn't bind to one session
>so theoretically, the connection can use any session to make the call, thus,
>session can't be aware of the connections and the disconnected connection has
>to choose leaving the session open (causing the possible leak) or kill the
>session (cause invalid session handle from another connection).
I'm working/evaluating on this binding approach and feel it's promising. The
hard part is to keep backward compatible. Want to hear more ideas on that.
The new workflow would be:
openConnection =>openSession/bindSession => make calls without sessionHandle
=> closeSession => closeConnection.
closeSession will actually do unbindSession or closeSession if no active
connections. If somehow closeSession is not called, closeConnection will do
such work so it won't be any leaking.
> 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)