[
https://issues.apache.org/jira/browse/HIVE-21033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Szehon Ho updated HIVE-21033:
-----------------------------
Attachment: HIVE-21033.3.patch
> Forgetting to close operation cuts off any more HiveServer2 output
> ------------------------------------------------------------------
>
> Key: HIVE-21033
> URL: https://issues.apache.org/jira/browse/HIVE-21033
> Project: Hive
> Issue Type: Bug
> Reporter: Szehon Ho
> Assignee: Szehon Ho
> Priority: Major
> Attachments: HIVE-21033.2.patch, HIVE-21033.3.patch, HIVE-21033.patch
>
>
> We had a custom client that did not handle closing the operations, until the
> end of the session. it is a mistake in the client, but it reveals kind of a
> vulnerability in HiveServer2
> This happens if you have a session with (1) HiveCommandOperation and (2)
> SQLOperation and don't close them right after. For example a session that
> does the operations (set a=b; select * from foobar; ).
> When SQLOperation runs , it set SessionState.out and err to be System.out and
> System.err . Ref:
> [SQLOperation#setupSessionIO|https://github.com/apache/hive/blob/master/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java#L139]
> Then the client closes the session, or disconnects which triggers
> closeSession() on the Thrift side. In this case, the closeSession closes all
> the operations, starting with HiveCommandOperation. This closes all the
> streams, which is System.out and System.err as set by SQLOperation earlier.
> Ref:
> [HiveCommandOperation#tearDownSessionIO|https://github.com/apache/hive/blob/f37c5de6c32b9395d1b34fa3c02ed06d1bfbf6eb/service/src/java/org/apache/hive/service/cli/operation/HiveCommandOperation.java#L101]
>
> After this, no more HiveServer2 output appears as System.out and System.err
> are closed.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)