phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hadoop QA (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-5073) Invalid PIndexState during rolling upgrade from 4.13 to 4.14
Date Thu, 27 Dec 2018 22:04:00 GMT

    [ https://issues.apache.org/jira/browse/PHOENIX-5073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16729904#comment-16729904
] 

Hadoop QA commented on PHOENIX-5073:
------------------------------------

{color:red}-1 overall{color}.  Here are the results of testing the latest attachment 
  http://issues.apache.org/jira/secure/attachment/12953142/PHOENIX-5073-4.x-HBase-1.3.002.patch
  against 4.x-HBase-1.3 branch at commit 57509506dd64f67265473ac9daa30d9756e211d6.
  ATTACHMENT ID: 12953142

    {color:green}+1 @author{color}.  The patch does not contain any @author tags.

    {color:red}-1 tests included{color}.  The patch doesn't appear to include any new or modified
tests.
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    {color:green}+1 javac{color}.  The applied patch does not increase the total number of
javac compiler warnings.

    {color:red}-1 release audit{color}.  The applied patch generated 1 release audit warnings
(more than the master's current 0 warnings).

    {color:red}-1 lineLengths{color}.  The patch introduces the following lines longer than
100:
    +                        + "(org_id VARCHAR NOT NULL PRIMARY KEY, v1 INTEGER, v2 INTEGER,
v3 INTEGER)";
+            assert (PIndexState.valueOf(result.getTable().getIndexes(0).getIndexState()).equals(PIndexState.DISABLE));
+    private PTable modifyIndexStateForOldClient (int clientVersion, PTable table) throws
SQLException {
+        // If client is not yet up to 4.12, then translate PENDING_ACTIVE to ACTIVE (as would
have been
+        if (table.getIndexState() == PIndexState.PENDING_ACTIVE && clientVersion
< MetaDataProtocol.MIN_PENDING_ACTIVE_INDEX) {
+            table = PTableImpl.builderWithColumns(table, PTableImpl.getColumnsToClone(table)).setState(PIndexState.ACTIVE).build();
+        if (table.getIndexState() == PIndexState.PENDING_DISABLE && clientVersion
< MetaDataProtocol.MIN_PENDING_DISABLE_INDEX) {
+            // note: for older clients, we have to rely on the rebuilder to transition PENDING_DISABLE
-> DISABLE
+            table = PTableImpl.builderWithColumns(table, PTableImpl.getColumnsToClone(table)).setState(PIndexState.DISABLE).build();

    {color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: https://builds.apache.org/job/PreCommit-PHOENIX-Build/2222//testReport/
Release audit warnings: https://builds.apache.org/job/PreCommit-PHOENIX-Build/2222//artifact/patchprocess/patchReleaseAuditWarnings.txt
Console output: https://builds.apache.org/job/PreCommit-PHOENIX-Build/2222//console

This message is automatically generated.

> Invalid PIndexState during rolling upgrade from 4.13 to 4.14
> ------------------------------------------------------------
>
>                 Key: PHOENIX-5073
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5073
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.0
>            Reporter: Kiran Kumar Maturi
>            Assignee: Kiran Kumar Maturi
>            Priority: Major
>         Attachments: PHOENIX-5073-4.x-HBase-1.3.001.patch, PHOENIX-5073-4.x-HBase-1.3.002.patch
>
>
> While doing a rolling upgrade from 4.13 to 4.14 we are seeing this exception. 
> {code:java}
> 2018-08-20 09:00:34,980 WARN  [pool-1-thread-1] workload.WriteWorkload - 
> java.util.concurrent.ExecutionException: java.sql.SQLException: java.lang.IllegalArgumentException:
Unable to PIndexState enum for serialized value of 'w'
>     at java.util.concurrent.FutureTask.report(FutureTask.java:122)
>     at java.util.concurrent.FutureTask.get(FutureTask.java:192)
>     at org.apache.phoenix.pherf.workload.WriteWorkload.waitForBatches(WriteWorkload.java:233)
>     at org.apache.phoenix.pherf.workload.WriteWorkload.exec(WriteWorkload.java:183)
>     at org.apache.phoenix.pherf.workload.WriteWorkload.access$100(WriteWorkload.java:56)
>     at org.apache.phoenix.pherf.workload.WriteWorkload$1.run(WriteWorkload.java:159)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>     at java.lang.Thread.run(Thread.java:745)
> Caused by: java.sql.SQLException: java.lang.IllegalArgumentException: Unable to PIndexState
enum for serialized value of 'w'
>     at org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1322)
>     at org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1284)
>     at org.apache.phoenix.query.ConnectionQueryServicesImpl.getTable(ConnectionQueryServicesImpl.java:1501)
>     at org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:581)
>     at org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:504)
>     at org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:496)
>     at org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:492)
>     at org.apache.phoenix.execute.MutationState.validate(MutationState.java:780)
>     at org.apache.phoenix.execute.MutationState.validateAll(MutationState.java:768)
>     at org.apache.phoenix.execute.MutationState.send(MutationState.java:980)
>     at org.apache.phoenix.execute.MutationState.send(MutationState.java:1469)
>     at org.apache.phoenix.execute.MutationState.commit(MutationState.java:1301)
>     at org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:539)
>     at org.apache.phoenix.jdbc.PhoenixConnection$3.call(PhoenixConnection.java:536)
>     at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>     at org.apache.phoenix.jdbc.PhoenixConnection.commit(PhoenixConnection.java:536)
>     at org.apache.phoenix.pherf.workload.WriteWorkload$2.call(WriteWorkload.java:291)
>     at org.apache.phoenix.pherf.workload.WriteWorkload$2.call(WriteWorkload.java:250)
>     ... 4 more
> Caused by: java.lang.IllegalArgumentException: Unable to PIndexState enum for serialized
value of 'w'
>     at org.apache.phoenix.schema.PIndexState.fromSerializedValue(PIndexState.java:81)
>     at org.apache.phoenix.schema.PTableImpl.createFromProto(PTableImpl.java:1222)
>     at org.apache.phoenix.schema.PTableImpl.createFromProto(PTableImpl.java:1246)
>     at org.apache.phoenix.coprocessor.MetaDataProtocol$MetaDataMutationResult.constructFromProto(MetaDataProtocol.java:330)
>     at org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1314){code}
>  
> Steps to reproduce.
>  # Start the server on 4.14
>  # Start load with both 4.13 and 4.14 clients
>  # 4.13 client will show the above error (it will only when Index state transtition to
PENDING_DISABLE , this state is not defined in 4.13) 
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message