[
https://issues.apache.org/jira/browse/PHOENIX-3108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15390454#comment-15390454
]
James Taylor commented on PHOENIX-3108:
---------------------------------------
Had an offline conversation on this. It's not a blocker for 4.8.0. There are
two issues:
- Because we're setting server-side properties, the test that rely on this
should be in their own test class derived from BaseOwnClusterHBaseManagedTimeIT
- When the test is run for local indexes, it fails. This may or may not be a
bug. The test is trying to create an index while data is being written to the
table being indexed (which is not easy to do).
[~samarthjain] - would you mind doing the first part? Then we can ask
[~rajeshbabu] to take a look at the new test to see if there's an actual issue
or the test needs to be changed for local indexing.
> 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
> Fix For: 4.8.1
>
>
> [~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)