phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas D'Silva (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 07:56:00 GMT

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

Thomas D'Silva commented on PHOENIX-5073:
-----------------------------------------

[~kiran.maturi] Thanks for pointing that out. The index state of the cached version of the
PTable varies depending on whether an old or new client made the first request. I think it
would work if we move the two checks where we translate the index state for requests from
older client and create a copy of the PTable with the updated index state and use this for
creating the PTable proto that is returned to the client. Then we wouldn't always have to
rebuild the PTable and could use the cached version if available. 

> 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
>
>
> 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