[
https://issues.apache.org/jira/browse/HIVE-790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12748420#action_12748420
]
Zheng Shao commented on HIVE-790:
---------------------------------
Added the guard.
{code}
public void close(boolean abort) {
// Do not close twice
if (this.state == CLOSE) {
return;
}
// only close when all parents are closed.
if (!allParentsAreClosed()) {
return;
}
this.state = CLOSE;
// Close this operator
this.closeOp(boolean abort);
// Close all children
for (int i=0; i<children.size(); i++) {
children.get(i).close(abort);
}
}
protected void closeOp(boolean abort) {
// Different operator will have different states.
}
{code}
> 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.