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

James Taylor updated PHOENIX-1315:
----------------------------------
    Attachment: PHOENIX-1315_v3.patch

Updated patch. Getting the following test failures (w/out the call to 
queryPlan.iterator()):
{code}
2014-10-05 01:18:40.182 java[3926:1203] Unable to load realm mapping info from 
SCDynamicStore
Running org.apache.phoenix.pig.PhoenixHBaseLoaderIT
Tests run: 11, Failures: 0, Errors: 7, Skipped: 0, Time elapsed: 151.04 sec <<< 
FAILURE! - in org.apache.phoenix.pig.PhoenixHBaseLoaderIT
testGroupingOfDataForTable(org.apache.phoenix.pig.PhoenixHBaseLoaderIT)  Time 
elapsed: 8.262 sec  <<< ERROR!
java.lang.RuntimeException: No data for location 'out'
        at org.apache.pig.builtin.mock.Storage$Data.get(Storage.java:327)
        at 
org.apache.phoenix.pig.PhoenixHBaseLoaderIT.testGroupingOfDataForTable(PhoenixHBaseLoaderIT.java:415)

testDataForTable(org.apache.phoenix.pig.PhoenixHBaseLoaderIT)  Time elapsed: 
16.385 sec  <<< ERROR!
org.apache.pig.impl.logicalLayer.FrontendException: Unable to open iterator for 
alias B
        at org.apache.pig.PigServer.openIterator(PigServer.java:872)
        at 
org.apache.phoenix.pig.PhoenixHBaseLoaderIT.testDataForTable(PhoenixHBaseLoaderIT.java:259)

testForNonPKSQLQuery(org.apache.phoenix.pig.PhoenixHBaseLoaderIT)  Time 
elapsed: 16.717 sec  <<< ERROR!
org.apache.pig.impl.logicalLayer.FrontendException: Unable to open iterator for 
alias A
        at org.apache.pig.PigServer.openIterator(PigServer.java:872)
        at 
org.apache.phoenix.pig.PhoenixHBaseLoaderIT.testForNonPKSQLQuery(PhoenixHBaseLoaderIT.java:346)

testDataForSQLQueryWithSequences(org.apache.phoenix.pig.PhoenixHBaseLoaderIT)  
Time elapsed: 16.391 sec  <<< ERROR!
org.apache.pig.impl.logicalLayer.FrontendException: Unable to open iterator for 
alias A
        at org.apache.pig.PigServer.openIterator(PigServer.java:872)
        at 
org.apache.phoenix.pig.PhoenixHBaseLoaderIT.testDataForSQLQueryWithSequences(PhoenixHBaseLoaderIT.java:520)

testDataForSQLQueryWithFunctions(org.apache.phoenix.pig.PhoenixHBaseLoaderIT)  
Time elapsed: 16.493 sec  <<< ERROR!
org.apache.pig.impl.logicalLayer.FrontendException: Unable to open iterator for 
alias A
        at org.apache.pig.PigServer.openIterator(PigServer.java:872)
        at 
org.apache.phoenix.pig.PhoenixHBaseLoaderIT.testDataForSQLQueryWithFunctions(PhoenixHBaseLoaderIT.java:557)

testDataForSQLQuery(org.apache.phoenix.pig.PhoenixHBaseLoaderIT)  Time elapsed: 
16.351 sec  <<< ERROR!
org.apache.pig.impl.logicalLayer.FrontendException: Unable to open iterator for 
alias A
        at org.apache.pig.PigServer.openIterator(PigServer.java:872)
        at 
org.apache.phoenix.pig.PhoenixHBaseLoaderIT.testDataForSQLQuery(PhoenixHBaseLoaderIT.java:300)

testLoadAndStore(org.apache.phoenix.pig.PhoenixHBaseLoaderIT)  Time elapsed: 
16.793 sec  <<< ERROR!
java.sql.SQLException: ERROR 402 (24016): Cursor past last row.
        at 
org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:334)
        at 
org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:133)
        at 
org.apache.phoenix.jdbc.PhoenixResultSet.checkCursorState(PhoenixResultSet.java:197)
        at 
org.apache.phoenix.jdbc.PhoenixResultSet.getInt(PhoenixResultSet.java:413)
        at 
org.apache.phoenix.jdbc.PhoenixResultSet.getInt(PhoenixResultSet.java:424)
        at 
org.apache.phoenix.pig.PhoenixHBaseLoaderIT.testLoadAndStore(PhoenixHBaseLoaderIT.java:475)


Results :

Tests in error: 
  PhoenixHBaseLoaderIT.testGroupingOfDataForTable:415 ? Runtime No data for 
loca...
  PhoenixHBaseLoaderIT.testDataForTable:259 ? Frontend Unable to open iterator 
f...
  PhoenixHBaseLoaderIT.testForNonPKSQLQuery:346 ? Frontend Unable to open 
iterat...
  PhoenixHBaseLoaderIT.testDataForSQLQueryWithSequences:520 ? Frontend Unable 
to...
  PhoenixHBaseLoaderIT.testDataForSQLQueryWithFunctions:557 ? Frontend Unable 
to...
  PhoenixHBaseLoaderIT.testDataForSQLQuery:300 ? Frontend Unable to open 
iterato...
  PhoenixHBaseLoaderIT.testLoadAndStore:475 ? SQL ERROR 402 (24016): Cursor 
past...
{code}

If I put back the queryPlan.iterators() call, I get only two failures:
{code}
Rerun org.apache.phoenix.pig.PhoenixHBaseLoaderIT
org.apache.phoenix.pig.PhoenixHBaseLoaderIT
testGroupingOfDataForTable(org.apache.phoenix.pig.PhoenixHBaseLoaderIT)
java.lang.RuntimeException: No data for location 'out'
        at org.apache.pig.builtin.mock.Storage$Data.get(Storage.java:327)
        at 
org.apache.phoenix.pig.PhoenixHBaseLoaderIT.testGroupingOfDataForTable(PhoenixHBaseLoaderIT.java:415)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
        at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

testLoadAndStore(org.apache.phoenix.pig.PhoenixHBaseLoaderIT)
java.sql.SQLException: ERROR 402 (24016): Cursor past last row.
        at 
org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:334)
        at 
org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:133)
        at 
org.apache.phoenix.jdbc.PhoenixResultSet.checkCursorState(PhoenixResultSet.java:197)
        at 
org.apache.phoenix.jdbc.PhoenixResultSet.getInt(PhoenixResultSet.java:413)
        at 
org.apache.phoenix.jdbc.PhoenixResultSet.getInt(PhoenixResultSet.java:424)
        at 
org.apache.phoenix.pig.PhoenixHBaseLoaderIT.testLoadAndStore(PhoenixHBaseLoaderIT.java:475)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
        at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

{code}


> Remove queryPlan.iterators() call in PhoenixInputFormat if not necessary
> ------------------------------------------------------------------------
>
>                 Key: PHOENIX-1315
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1315
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: maghamravikiran
>             Fix For: 4.2, 3.2
>
>         Attachments: PHOENIX-1315.patch, PHOENIX-1315_v2.patch, 
> PHOENIX-1315_v3.patch
>
>
> I came across this with a recent change I was making. Why is the call to 
> queryPlan.iterators() necessary in PhoenixInputFormat?
> {code}
>     private QueryPlan getQueryPlan(final JobContext context) throws 
> IOException {
>         Preconditions.checkNotNull(context);
>         if(queryPlan == null) {
>             try{
>                 final Connection connection = getConnection();
>                 final String selectStatement = getConf().getSelectStatement();
>                 Preconditions.checkNotNull(selectStatement);
>                 final Statement statement = connection.createStatement();
>                 final PhoenixStatement pstmt = 
> statement.unwrap(PhoenixStatement.class);
>                 this.queryPlan = pstmt.compileQuery(selectStatement);
>                 // FIXME: why is getting the iterator necessary here, as it 
> will
>                 // cause the query to run.
>                 this.queryPlan.iterator();
>             } catch(Exception exception) {
>                 LOG.error(String.format("Failed to get the query plan with 
> error [%s]",exception.getMessage()));
>                 throw new RuntimeException(exception);
>             }
>         }
>         return queryPlan;
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to