[ 
https://issues.apache.org/jira/browse/PIG-2429?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anitha Raju updated PIG-2429:
-----------------------------

    Description: 
Hi,

The below script sometimes fails giving null error message and some times with 
correct error message in the pig_*.log

Script
{code}
register 'a.py' using jython as test;
A = load 'test.txt' as (x:chararray);
B = foreach A generate
        test.a(x) as y;
C = group B by (y);
store C into 'C';
{code}

where a.py is
{code}
@outputSchema("n:chararray")
def a(n):
  n = n.lower();
  return n;
{code}

input- test.txt
=======
a


=======

I have not put null check in a.py so that the script would error out.

This script when run with 0.9 version, fails printing in the pig_*.log either 
null error message or the correct error message

Null Error message
{code}
Pig Stack Trace
---------------
ERROR 2244: Job failed, hadoop does not return any error message

org.apache.pig.backend.executionengine.ExecException: ERROR 2244: Job failed, 
hadoop does not return any error message
        at 
org.apache.pig.tools.grunt.GruntParser.executeBatch(GruntParser.java:139)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:192)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:164)
        at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:81)
        at org.apache.pig.Main.run(Main.java:561)
        at org.apache.pig.Main.main(Main.java:111)
{code}

Correct Error message
{code}
Backend error message
---------------------
org.apache.pig.backend.executionengine.ExecException: ERROR 0: Error executing 
function
        at 
org.apache.pig.scripting.jython.JythonFunction.exec(JythonFunction.java:106)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:216)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:305)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNext(PhysicalOperator.java:322)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:332)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNext(POForEach.java:284)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:290)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange.getNext(POLocalRearrange.java:256)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:267)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:262)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:64)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:261)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
        at org.apache.hadoop.mapred.Child.main(Child.java:255)
Caused by: Traceback (most recent call last):
  File "a.py", line 5, in n
AttributeError: 'NoneType' object has no attribute 'lower'

        at org.python.core.PyException.fillInStackTrace(PyException.java:70)
        at java.lang.Throwable.<init>(Throwable.java:181)
        at java.lang.Exception.<init>(Exception.java:29)
        at java.lang.RuntimeException.<init>(RuntimeException.java:32)
        at org.python.core.PyException.<init>(PyException.java:46)
        at org.python.core.PyException.<init>(PyException.java:43)
        at org.python.core.PyException.<init>(PyException.java:61)
        at org.python.core.Py.AttributeError(Py.java:145)
        at org.python.core.PyObject.noAttributeError(PyObject.java:936)
        at org.python.core.PyObject.__getattr__(PyObject.java:931)
        at org.python.pycode._pyx3.n$1(a.py:6)
        at org.python.pycode._pyx3.call_function(a.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
        at org.python.core.PyFunction.__call__(PyFunction.java:370)
        at org.python.core.PyFunction.__call__(PyFunction.java:360)
        at org.python.core.PyFunction.__call__(PyFunction.java:355)
        at 
org.apache.pig.scripting.jython.JythonFunction.exec(JythonFunction.java:103)
        ... 18 more
                
{code}

Putting a couple of sysout in the code, i found it was happening when in 
Launcher.getStats

{code}
TaskReport[] mapRep = jobClient.getMapTaskReports(MRJobID);
getErrorMessages(mapRep, "map", errNotDbg, pigContext);
totalHadoopTimeSpent += computeTimeSpent(mapRep);
{code}

whenever mapRed becomes null, it gives null error message.

Can it be made better?

Regards,
Anitha


  was:
Hi,

The below script sometimes fails giving null error message and some times with 
correct error message in the pig_*.log

Script
{code}
register 'a.py' using jython as test;
A = load 'test.txt' as (x:chararray);
B = foreach A generate
        test.a(x) as y;
C = group B by (y);
store C into 'C';
{code}

where a.py is
{code}
@outputSchema("n:chararray")
def a(n):
  n = n.lower();
  return n;
{code}

input- test.txt
{code}
a

{code}

I have not put null check in a.py so that the script would error out.

This script when run with 0.9 version, fails printing in the pig_*.log either 
null error message or the correct error message

Null Error message
===============================================================================
Pig Stack Trace
---------------
ERROR 2244: Job failed, hadoop does not return any error message

org.apache.pig.backend.executionengine.ExecException: ERROR 2244: Job failed, 
hadoop does not return any error message
        at 
org.apache.pig.tools.grunt.GruntParser.executeBatch(GruntParser.java:139)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:192)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:164)
        at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:81)
        at org.apache.pig.Main.run(Main.java:561)
        at org.apache.pig.Main.main(Main.java:111)
================================================================================

Correct Error message
===================
Backend error message
---------------------
org.apache.pig.backend.executionengine.ExecException: ERROR 0: Error executing 
function
        at 
org.apache.pig.scripting.jython.JythonFunction.exec(JythonFunction.java:106)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:216)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:305)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNext(PhysicalOperator.java:322)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:332)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNext(POForEach.java:284)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:290)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange.getNext(POLocalRearrange.java:256)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:267)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:262)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:64)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:261)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
        at org.apache.hadoop.mapred.Child.main(Child.java:255)
Caused by: Traceback (most recent call last):
  File "a.py", line 5, in n
AttributeError: 'NoneType' object has no attribute 'lower'

        at org.python.core.PyException.fillInStackTrace(PyException.java:70)
        at java.lang.Throwable.<init>(Throwable.java:181)
        at java.lang.Exception.<init>(Exception.java:29)
        at java.lang.RuntimeException.<init>(RuntimeException.java:32)
        at org.python.core.PyException.<init>(PyException.java:46)
        at org.python.core.PyException.<init>(PyException.java:43)
        at org.python.core.PyException.<init>(PyException.java:61)
        at org.python.core.Py.AttributeError(Py.java:145)
        at org.python.core.PyObject.noAttributeError(PyObject.java:936)
        at org.python.core.PyObject.__getattr__(PyObject.java:931)
        at org.python.pycode._pyx3.n$1(a.py:6)
        at org.python.pycode._pyx3.call_function(a.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
        at org.python.core.PyFunction.__call__(PyFunction.java:370)
        at org.python.core.PyFunction.__call__(PyFunction.java:360)
        at org.python.core.PyFunction.__call__(PyFunction.java:355)
        at 
org.apache.pig.scripting.jython.JythonFunction.exec(JythonFunction.java:103)
        ... 18 more
                
=======================

Putting a couple of sysout in the code, i found it was happening when in 
Launcher.getStats

------------------------------
TaskReport[] mapRep = jobClient.getMapTaskReports(MRJobID);
System.out.println("going to get error message");
getErrorMessages(mapRep, "map", errNotDbg, pigContext);
System.out.println("got the error message");
totalHadoopTimeSpent += computeTimeSpent(mapRep);
------------------------------

whenever mapRed becomes null, it gives null error message.

Can it be made better?

Regards,
Anitha


    
> Better error message in pig_*.log
> ---------------------------------
>
>                 Key: PIG-2429
>                 URL: https://issues.apache.org/jira/browse/PIG-2429
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.9.0
>            Reporter: Anitha Raju
>            Priority: Minor
>
> Hi,
> The below script sometimes fails giving null error message and some times 
> with correct error message in the pig_*.log
> Script
> {code}
> register 'a.py' using jython as test;
> A = load 'test.txt' as (x:chararray);
> B = foreach A generate
>         test.a(x) as y;
> C = group B by (y);
> store C into 'C';
> {code}
> where a.py is
> {code}
> @outputSchema("n:chararray")
> def a(n):
>   n = n.lower();
>   return n;
> {code}
> input- test.txt
> =======
> a
> =======
> I have not put null check in a.py so that the script would error out.
> This script when run with 0.9 version, fails printing in the pig_*.log either 
> null error message or the correct error message
> Null Error message
> {code}
> Pig Stack Trace
> ---------------
> ERROR 2244: Job failed, hadoop does not return any error message
> org.apache.pig.backend.executionengine.ExecException: ERROR 2244: Job failed, 
> hadoop does not return any error message
>         at 
> org.apache.pig.tools.grunt.GruntParser.executeBatch(GruntParser.java:139)
>         at 
> org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:192)
>         at 
> org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:164)
>         at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:81)
>         at org.apache.pig.Main.run(Main.java:561)
>         at org.apache.pig.Main.main(Main.java:111)
> {code}
> Correct Error message
> {code}
> Backend error message
> ---------------------
> org.apache.pig.backend.executionengine.ExecException: ERROR 0: Error 
> executing function
>         at 
> org.apache.pig.scripting.jython.JythonFunction.exec(JythonFunction.java:106)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:216)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:305)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNext(PhysicalOperator.java:322)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:332)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNext(POForEach.java:284)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:290)
>         at 
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange.getNext(POLocalRearrange.java:256)
>         at 
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:267)
>         at 
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:262)
>         at 
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:64)
>         at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
>         at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
>         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
>         at org.apache.hadoop.mapred.Child$4.run(Child.java:261)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:396)
>         at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
>         at org.apache.hadoop.mapred.Child.main(Child.java:255)
> Caused by: Traceback (most recent call last):
>   File "a.py", line 5, in n
> AttributeError: 'NoneType' object has no attribute 'lower'
>         at org.python.core.PyException.fillInStackTrace(PyException.java:70)
>         at java.lang.Throwable.<init>(Throwable.java:181)
>         at java.lang.Exception.<init>(Exception.java:29)
>         at java.lang.RuntimeException.<init>(RuntimeException.java:32)
>         at org.python.core.PyException.<init>(PyException.java:46)
>         at org.python.core.PyException.<init>(PyException.java:43)
>         at org.python.core.PyException.<init>(PyException.java:61)
>         at org.python.core.Py.AttributeError(Py.java:145)
>         at org.python.core.PyObject.noAttributeError(PyObject.java:936)
>         at org.python.core.PyObject.__getattr__(PyObject.java:931)
>         at org.python.pycode._pyx3.n$1(a.py:6)
>         at org.python.pycode._pyx3.call_function(a.py)
>         at org.python.core.PyTableCode.call(PyTableCode.java:165)
>         at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
>         at org.python.core.PyFunction.__call__(PyFunction.java:370)
>         at org.python.core.PyFunction.__call__(PyFunction.java:360)
>         at org.python.core.PyFunction.__call__(PyFunction.java:355)
>         at 
> org.apache.pig.scripting.jython.JythonFunction.exec(JythonFunction.java:103)
>         ... 18 more
>               
> {code}
> Putting a couple of sysout in the code, i found it was happening when in 
> Launcher.getStats
> {code}
> TaskReport[] mapRep = jobClient.getMapTaskReports(MRJobID);
> getErrorMessages(mapRep, "map", errNotDbg, pigContext);
> totalHadoopTimeSpent += computeTimeSpent(mapRep);
> {code}
> whenever mapRed becomes null, it gives null error message.
> Can it be made better?
> Regards,
> Anitha

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to