Author: knoguchi
Date: Tue Aug 25 19:40:51 2020
New Revision: 1881193

URL: http://svn.apache.org/viewvc?rev=1881193&view=rev
Log:
PIG-5403: streaming job stuck with script failure when combined with ORDER BY 
(knoguchi)

Modified:
    pig/trunk/CHANGES.txt
    
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POReservoirSample.java
    pig/trunk/test/e2e/pig/tests/negative.conf

Modified: pig/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1881193&r1=1881192&r2=1881193&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Tue Aug 25 19:40:51 2020
@@ -100,6 +100,8 @@ OPTIMIZATIONS
  
 BUG FIXES
 
+PIG-5403: streaming job stuck with script failure when combined with ORDER BY 
(knoguchi)
+
 PIG-5362: Parameter substitution of shell cmd results doesn't handle backslash 
addendum (szita)
 
 PIG-5395: Pig build is failing due to maven repo access point change (szita)

Modified: 
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POReservoirSample.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POReservoirSample.java?rev=1881193&r1=1881192&r2=1881193&view=diff
==============================================================================
--- 
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POReservoirSample.java
 (original)
+++ 
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POReservoirSample.java
 Tue Aug 25 19:40:51 2020
@@ -103,7 +103,9 @@ public class POReservoirSample extends P
         Result res = null;
         while (rowProcessed < numSamples) {
             res = processInput();
-            if (res.returnStatus == POStatus.STATUS_OK) {
+            if (res.returnStatus == POStatus.STATUS_ERR) {
+              return res;
+            } else if (res.returnStatus == POStatus.STATUS_OK) {
                 samples[(int)rowProcessed] = res;
                 rowProcessed++;
             } else if (res.returnStatus == POStatus.STATUS_NULL) {
@@ -125,7 +127,9 @@ public class POReservoirSample extends P
             while (true) {
                 // pick this as sample
                 res = processInput();
-                if (res.returnStatus == POStatus.STATUS_NULL) {
+                if (res.returnStatus == POStatus.STATUS_ERR) {
+                  return res;
+                } else if (res.returnStatus == POStatus.STATUS_NULL) {
                     continue;
                 } else if (res.returnStatus != POStatus.STATUS_OK) {
                     break;

Modified: pig/trunk/test/e2e/pig/tests/negative.conf
URL: 
http://svn.apache.org/viewvc/pig/trunk/test/e2e/pig/tests/negative.conf?rev=1881193&r1=1881192&r2=1881193&view=diff
==============================================================================
--- pig/trunk/test/e2e/pig/tests/negative.conf (original)
+++ pig/trunk/test/e2e/pig/tests/negative.conf Tue Aug 25 19:40:51 2020
@@ -457,7 +457,7 @@ B = stream A through CMD;
 store B into ':OUTPATH:';\,
                         'expected_err_regex' => "failed with exit status: 2",
                         },
-                       {
+                                         {
                         'num' => 5,
                        'execonly' => 'mapred,tez',
                         'pig' => q\
@@ -470,6 +470,17 @@ store B into ':OUTPATH:.1';
 store C into ':OUTPATH:.2';\,
                         'expected_err_regex' => "failed with exit status: 
1|Error while reading from POStream and passing it to the streaming",
                         },
+                                         {
+                        'num' => 6,
+                       'execonly' => 'mapred,tez',
+                        'pig' => q\
+define BADCMD `perl PigStreamingBad.pl middle` 
ship(':SCRIPTHOMEPATH:/PigStreamingBad.pl');
+A = load ':INPATH:/singlefile/studenttab10k';
+B = stream A through BADCMD;
+C = ORDER B by *;
+store C into ':OUTPATH:.1';\,
+                        'expected_err_regex' => "failed with exit status: 
2|Error while reading from POStream and passing it to the streaming",
+                        },
 
                 ]
                },


Reply via email to