[
https://issues.apache.org/jira/browse/PHOENIX-5607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17010907#comment-17010907
]
Sandeep Guggilam commented on PHOENIX-5607:
-------------------------------------------
Yes [~larsh] , the approach works fine and here is the proposal :
h2. Java Integration Test Workflow
* We would add integration tests as part of the existing IT suite for the
backward compatibility testing
* Each integration test would essentially comprise of a sequence of steps
running SQL queries against the new server jar with different combinations of
old and new client jar as mentioned in the above JIRA
* Current integrations tests bring up a mini cluster using HBaseTestingUtility
APIs. We would be testing out different scenarios with older and new clients
connecting to the mini cluster that is brought up
* We already have the new client in the form of current code which is used for
bringing up the mini cluster. We need the older client jar for running some
queries against the new server jar
* Maintain a constant in our Phoenix code that stores the previous Phoenix
version similar to how we maintain the current version using MAJOR_VERSION,
MINOR_VERSION and PATCH_VERSION constants. The version of the old client should
be maintained in a form which helps the script (script details below)
* The integration test would invoke a script with the ZK cluster of the mini
cluster for running any queries against the cluster with old client jar.
Details of the script and parameters is outlined below
* The test would then compare the output against a gold file that contains the
result of the queries executed from the query file
h2. Shell/Python Script
* The script is intended for running SQL queries against the mini cluster with
the given client version
* The script takes the following parameters as input
* ZK URL - URL to connect for running the queries
* Client Version - Version of the client to be used for running the queries
* Query File - File containing the queries to be executed against the cluster
* It would then download the client tar ball from the Phoenix repository using
the provided client version
* Fire the queries in the provided file against the mini cluster using the
downloaded client jar
* Compare the output against gold files
> Client-server backward compatibility tests
> -------------------------------------------
>
> Key: PHOENIX-5607
> URL: https://issues.apache.org/jira/browse/PHOENIX-5607
> Project: Phoenix
> Issue Type: Test
> Affects Versions: 4.15.0
> Reporter: Lars Hofhansl
> Priority: Blocker
> Labels: phoenix-hardening
> Fix For: 4.16.0
>
>
> Filing this as a blocker for 4.16.0.
> As we've seen with the various failed attempts to release 4.15.0 Phoenix'
> backwards compatibility story is weak, and lacks tests - in fact there're no
> tests.
> We should not allow to ship 4.16.0 without improving that and without tests.
> [~ckulkarni], [~gjacoby] , FYI, what we discussed.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)