Index: ql/src/test/results/clientnegative/script_broken_pipe2.q.out =================================================================== --- ql/src/test/results/clientnegative/script_broken_pipe2.q.out (revision 4369) +++ ql/src/test/results/clientnegative/script_broken_pipe2.q.out (working copy) @@ -1,6 +1,6 @@ PREHOOK: query: -- Tests exception in ScriptOperator.processOp() by passing extra data needed to fill pipe buffer -SELECT TRANSFORM(key, value, key, value, key, value, key, value, key, value, key, value) USING 'head -n 1' as a,b,c,d FROM src +SELECT TRANSFORM(key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value) USING 'true' as a,b,c,d FROM src PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/pyang/trunk/VENDOR.hive/trunk/build/ql/tmp/588453066/10000 +PREHOOK: Output: file:/data/users/pyang/script/trunk/VENDOR.hive/trunk/build/ql/tmp/1650258494/10000 FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask Index: ql/src/test/queries/clientnegative/script_broken_pipe1.q =================================================================== --- ql/src/test/queries/clientnegative/script_broken_pipe1.q (revision 4369) +++ ql/src/test/queries/clientnegative/script_broken_pipe1.q (working copy) @@ -1,2 +1,3 @@ +set hive.exec.script.allow.partial.consumption = false; -- Tests exception in ScriptOperator.close() by passing to the operator a small amount of data SELECT TRANSFORM(*) USING 'true' AS a, b, c FROM (SELECT * FROM src LIMIT 1) tmp; Index: ql/src/test/queries/clientnegative/script_broken_pipe3.q =================================================================== --- ql/src/test/queries/clientnegative/script_broken_pipe3.q (revision 4369) +++ ql/src/test/queries/clientnegative/script_broken_pipe3.q (working copy) @@ -1,2 +1,3 @@ +set hive.exec.script.allow.partial.consumption = true; -- Test to ensure that a script with a bad error code still fails even with partial consumption SELECT TRANSFORM(*) USING 'false' AS a, b, c FROM (SELECT * FROM src LIMIT 1) tmp; Index: ql/src/test/queries/clientnegative/script_broken_pipe2.q =================================================================== --- ql/src/test/queries/clientnegative/script_broken_pipe2.q (revision 4369) +++ ql/src/test/queries/clientnegative/script_broken_pipe2.q (working copy) @@ -1,2 +1,3 @@ +set hive.exec.script.allow.partial.consumption = false; -- Tests exception in ScriptOperator.processOp() by passing extra data needed to fill pipe buffer -SELECT TRANSFORM(key, value, key, value, key, value, key, value, key, value, key, value) USING 'head -n 1' as a,b,c,d FROM src; +SELECT TRANSFORM(key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value, key, value) USING 'true' as a,b,c,d FROM src; Index: ql/src/java/org/apache/hadoop/hive/ql/exec/ScriptOperator.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/ScriptOperator.java (revision 4369) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/ScriptOperator.java (working copy) @@ -337,7 +337,7 @@ } int exitVal = 0; if (scriptPid != null) - scriptPid.waitFor(); + exitVal = scriptPid.waitFor(); if (exitVal != 0) { LOG.error("Script failed with code " + exitVal); new_abort = true;