[
https://issues.apache.org/jira/browse/HIVE-790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12748477#action_12748477
]
Ning Zhang commented on HIVE-790:
---------------------------------
Discussed with Zheng offline. Zheng's proposal works as long as we change the
semantics of CLOSE state from "all its parents and children are closed" to "all
its parents are closed, but not necessarily its children". It should be fine
since we don't need to first semantics now. If it is needed later we probably
need to add another state.
Also for the close() to be synchronized, it seems not necessary for the script
operator since close() is always called by the main thread and the union
operator's close is called by one script operator at a time.
> race condition related to ScriptOperator + UnionOperator
> --------------------------------------------------------
>
> Key: HIVE-790
> URL: https://issues.apache.org/jira/browse/HIVE-790
> Project: Hadoop Hive
> Issue Type: Bug
> Reporter: Zheng Shao
> Assignee: Ning Zhang
> Attachments: Hive-790.patch, Hive-790_2.patch
>
>
> ScriptOperator uses a second thread to output the rows to the children
> operators. In a corner case which contains a union, 2 threads might be
> outputting data into the same operator hierarchy and caused race conditions.
> {code}
> CREATE TABLE tablea (cola STRING);
> SELECT *
> FROM (
> SELECT TRANSFORM(cola)
> USING 'cat'
> AS cola
> FROM tablea
> UNION ALL
> SELECT cola as cola
> FROM tablea
> ) a;
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.