diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java index 8b04cd4..6470117 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java @@ -515,7 +515,14 @@ protected void initializeChildren(Configuration hconf) throws HiveException { public void abort() { LOG.info("Received abort in operator: {}", getName()); abortOp.set(true); - } + cancelAsyncInitOps(); + if (childOperators == null || childOperators.isEmpty()) { + return; + } + for (int i = 0; i < childOperatorsArray.length; i++) { + childOperatorsArray[i].abort(); + } + } /** * Pass the execContext reference to every child operator @@ -691,7 +698,10 @@ public void close(boolean abort) throws HiveException { } abort |= abortOp.get(); - + + if (abort) { + abortOp.set(abort); + } // call the operator specific close routine closeOp(abort);