You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Samarth Jain (JIRA)" <ji...@apache.org> on 2016/07/21 19:08:20 UTC

[jira] [Updated] (PHOENIX-3108) ImmutableIndexIT fails when run on its own

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

Samarth Jain updated PHOENIX-3108:
----------------------------------
    Description: 
[~prakul] and I noticed that when running ImmutableIndexIT on its own, the test testCreateIndexDuringUpsertSelect fails for parameters localIndex = true and transactional = false. The failure stacktrace is:
{code}
java.sql.SQLTimeoutException: Operation timed out.
	at org.apache.phoenix.exception.SQLExceptionCode$15.newException(SQLExceptionCode.java:376)
	at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
	at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:805)
	at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:719)
	at org.apache.phoenix.iterate.ConcatResultIterator.getIterators(ConcatResultIterator.java:50)
	at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:97)
	at org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
	at org.apache.phoenix.compile.UpsertCompiler$2.execute(UpsertCompiler.java:810)
	at org.apache.phoenix.jdbc.PhoenixStatement$3.call(PhoenixStatement.java:340)
	at org.apache.phoenix.jdbc.PhoenixStatement$3.call(PhoenixStatement.java:1)
	at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
	at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:327)
	at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1388)
	at org.apache.phoenix.end2end.index.ImmutableIndexIT.testCreateIndexDuringUpsertSelect(ImmutableIndexIT.java:180)
{code}

My first guess is that the UPSERT SELECT running for building the local index isn't setting timestamp correctly. This is probably causing the select part to read the records that are being upserted. FYI, [~rajeshbabu]. The reason we are not seeing this error in jenkins is because the co-processor CreateIndexRegionObserver isn't getting installed. Because the co-processor is a server side property, the test class needs to extend BaseOwnClusterHBaseManagedTimeIT and *not* BaseHBaseManagedTimeIT.  This will make the test class run in its own mini-cluster. FYI, [~tdsilva] - it doesn't look like your race condition test is getting exercised when running test suite via maven.

  was:
[~prakul] and I noticed that when running ImmutableIndexIT on its own, the test fails for parameters localIndex = true and transactional = false. The failure stacktrace is:

My first guess is that the UPSERT SELECT running for building the local index isn't setting timestamp correctly. This is probably causing the select part to read the records that are being upserted. FYI, [~rajeshbabu]. 


There is another bug in the test class - because it wants custom co-processor to be installed, the test class should extend BaseOwnClusterHBaseManagedTimeIT. In fact, any test that wants custom server side property should spawn its own mini-cluster which is what would end up happening if you extend BaseOwnClusterHBaseManagedTimeIT. 
Otherwise, running tests via mvn install may not install the co-processor and the test case, specifically testCreateIndexDuringUpsertSelect, isn't testing out the race condition like it should. FYI, [~tdsilva]. 


> ImmutableIndexIT fails when run on its own
> ------------------------------------------
>
>                 Key: PHOENIX-3108
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3108
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Samarth Jain
>            Assignee: Thomas D'Silva
>
> [~prakul] and I noticed that when running ImmutableIndexIT on its own, the test testCreateIndexDuringUpsertSelect fails for parameters localIndex = true and transactional = false. The failure stacktrace is:
> {code}
> java.sql.SQLTimeoutException: Operation timed out.
> 	at org.apache.phoenix.exception.SQLExceptionCode$15.newException(SQLExceptionCode.java:376)
> 	at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
> 	at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:805)
> 	at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:719)
> 	at org.apache.phoenix.iterate.ConcatResultIterator.getIterators(ConcatResultIterator.java:50)
> 	at org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:97)
> 	at org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
> 	at org.apache.phoenix.compile.UpsertCompiler$2.execute(UpsertCompiler.java:810)
> 	at org.apache.phoenix.jdbc.PhoenixStatement$3.call(PhoenixStatement.java:340)
> 	at org.apache.phoenix.jdbc.PhoenixStatement$3.call(PhoenixStatement.java:1)
> 	at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:327)
> 	at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1388)
> 	at org.apache.phoenix.end2end.index.ImmutableIndexIT.testCreateIndexDuringUpsertSelect(ImmutableIndexIT.java:180)
> {code}
> My first guess is that the UPSERT SELECT running for building the local index isn't setting timestamp correctly. This is probably causing the select part to read the records that are being upserted. FYI, [~rajeshbabu]. The reason we are not seeing this error in jenkins is because the co-processor CreateIndexRegionObserver isn't getting installed. Because the co-processor is a server side property, the test class needs to extend BaseOwnClusterHBaseManagedTimeIT and *not* BaseHBaseManagedTimeIT.  This will make the test class run in its own mini-cluster. FYI, [~tdsilva] - it doesn't look like your race condition test is getting exercised when running test suite via maven.



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