You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Cheolsoo Park (JIRA)" <ji...@apache.org> on 2012/10/18 00:38:03 UTC

[jira] [Updated] (PIG-2978) TestLoadStoreFuncLifeCycle fails with hadoop-2.0.x

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

Cheolsoo Park updated PIG-2978:
-------------------------------

    Attachment: PIG-2978.patch

The error is thrown because the Hadoop-2.0.x Job class overrides the toString() method, and it checks whether the JobState is running or not.
{code}
  @Override
  public String toString() {
    ensureState(JobState.RUNNING);
    ...
{code}
In hadoop-1.0.x, String.valueOf(<Job object>) is printed as something like this:
{code}
org.apache.hadoop.mapreduce.Job@7ee49dcd
{code}
So I replaced String.valueOf(<Job object>) with Job.class.getName().

With this change, the test now runs with hadoop-2.0.x but fails because the no. of store func instances is 5, whereas it is 4 with hadoop-1.0.x. So I replaced the assertion as follows:
{code}
Storer.count <= (Util.isHadoop2_0() ? 5 : 4)
{code}
It would be good if we could identify why it is different between hadoop-1.0.x and hadoop-2.0.x.

                
> TestLoadStoreFuncLifeCycle fails with hadoop-2.0.x
> --------------------------------------------------
>
>                 Key: PIG-2978
>                 URL: https://issues.apache.org/jira/browse/PIG-2978
>             Project: Pig
>          Issue Type: Sub-task
>            Reporter: Cheolsoo Park
>             Fix For: 0.11
>
>         Attachments: PIG-2978.patch
>
>
> To reproduce, please run:
> {code}
> ant clean test -Dtestcase=TestLoadStoreFuncLifeCycle -Dhadoopversion=23
> {code}
> This fails with the following error:
> {code}
> Error during parsing. Job in state DEFINE instead of RUNNING
> org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during parsing. Job in state DEFINE instead of RUNNING
>     at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1607)
>     at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1546)
>     at org.apache.pig.PigServer.registerQuery(PigServer.java:516)
>     at org.apache.pig.PigServer.registerQuery(PigServer.java:529)
>     at org.apache.pig.TestLoadStoreFuncLifeCycle.testLoadStoreFunc(TestLoadStoreFuncLifeCycle.java:332)
> Caused by: Failed to parse: Job in state DEFINE instead of RUNNING
>     at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:193)
>     at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1599)
> Caused by: java.lang.IllegalStateException: Job in state DEFINE instead of RUNNING
>     at org.apache.hadoop.mapreduce.Job.ensureState(Job.java:292)
>     at org.apache.hadoop.mapreduce.Job.toString(Job.java:456)
>     at java.lang.String.valueOf(String.java:2826)
>     at org.apache.pig.TestLoadStoreFuncLifeCycle.logCaller(TestLoadStoreFuncLifeCycle.java:270)
>     at org.apache.pig.TestLoadStoreFuncLifeCycle.access$000(TestLoadStoreFuncLifeCycle.java:41)
>     at org.apache.pig.TestLoadStoreFuncLifeCycle$InstrumentedStorage.logCaller(TestLoadStoreFuncLifeCycle.java:54)
>     at org.apache.pig.TestLoadStoreFuncLifeCycle$InstrumentedStorage.getSchema(TestLoadStoreFuncLifeCycle.java:115)
>     at org.apache.pig.newplan.logical.relational.LOLoad.getSchemaFromMetaData(LOLoad.java:174)
>     at org.apache.pig.newplan.logical.relational.LOLoad.<init>(LOLoad.java:88)
>     at org.apache.pig.parser.LogicalPlanBuilder.buildLoadOp(LogicalPlanBuilder.java:839)
>     at org.apache.pig.parser.LogicalPlanGenerator.load_clause(LogicalPlanGenerator.java:3236)
>     at org.apache.pig.parser.LogicalPlanGenerator.op_clause(LogicalPlanGenerator.java:1315)
>     at org.apache.pig.parser.LogicalPlanGenerator.general_statement(LogicalPlanGenerator.java:799)
>     at org.apache.pig.parser.LogicalPlanGenerator.statement(LogicalPlanGenerator.java:517)
>     at org.apache.pig.parser.LogicalPlanGenerator.query(LogicalPlanGenerator.java:392)
>     at org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:184)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira