Description
While doing a rolling upgrade from 4.13 to 4.14 we are seeing this exception.
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)
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)