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

Reply via email to