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

Reply via email to