[
https://issues.apache.org/jira/browse/PHOENIX-3108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15388298#comment-15388298
]
Samarth Jain commented on PHOENIX-3108:
---------------------------------------
The issue is that the co-processor isn't necessarily getting installed. If the
test class happens to be the first one to run on the JVM, then yes, the
co-processor will be installed.
In particular, these two methods:
{code}
public static void doSetup() throws Exception {
Map<String, String> serverProps = Maps.newHashMapWithExpectedSize(1);
serverProps.put("hbase.coprocessor.region.classes",
CreateIndexRegionObserver.class.getName());
Map<String, String> clientProps = Maps.newHashMapWithExpectedSize(2);
clientProps.put(QueryServices.TRANSACTIONS_ENABLED, "true");
clientProps.put(QueryServices.INDEX_POPULATION_SLEEP_TIME, "15000");
setUpTestDriver(new ReadOnlyProps(serverProps.entrySet().iterator()),
new ReadOnlyProps(clientProps.entrySet().iterator()));
}
protected static String checkClusterInitialized(ReadOnlyProps overrideProps)
throws Exception {
if (!clusterInitialized) {
url = setUpTestCluster(config, overrideProps);
clusterInitialized = true;
}
return url;
}
{code}
setUpTestDriver calls checkClusterInitialized(serverProps). So if the cluster
is already initialized, setUpTestCluster() won't be called.
> 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)