thelastpickle / cassandra-medusa

Apache Cassandra Backup and Restore Tool
Apache License 2.0
262 stars 141 forks source link

Fix failing tests for Cassandra 4.1/trunk #544

Open emerkle826 opened 1 year ago

emerkle826 commented 1 year ago

Project board link

One of the Integration tests that uses Management API jars for testing grpc functionality has been failing for a while when run against Cassandra trunk. The test should be fixable now as part of the issue was that the available Management API jarfiles used to setup the test were not compatible with Casandra trunk at the time they started failing. The test code in question that can now be fixed is here:

https://github.com/thelastpickle/cassandra-medusa/blob/master/tests/integration/features/steps/integration_steps.py#L1381-L1399

Essentially, that code block needs to accommodate the 4.1 Management API jarfiles that are now available. These should fix the issues when testing against trunk. In the process, we probably should add Cassandra 4.1 tests as well.

Definition of done

┆Issue is synchronized with this Jira Story by Unito

emerkle826 commented 1 year ago

Revisiting this ticket to update some things. 1) The test code that will need to be changed is currently here (the symlink_mgmt_api_jar function in case things change and the line num,bers get off) 2) Since this ticket was originally created, Cassandras 4.1 (which used to be trunk) has been released, Cassandra 5.0 is in Alpha1 and Cassandra trunk is 5.1-SNAPSHOT. So the setup function above will have to handle a few more Cassandra versions 3) As it currently stands, the Management API project does not currently work with Cassandra trunk (5.1-SNAPSHOT), and I believe it no longer works with Cassandra 5.0-alpha1. It does work with Cassandra 4.1.x, so at the very least, we can update the test setup to include that version

Also, the code in the get_mgmt_api_jars function here will need to be changed to fetch those 4.1 jarfiles.

rzvoncek commented 1 year ago

Placing the jars got solved, but I'm hard stuck on running sstableloader against a 4.1.3 cluster with client-server encryption turned on. Not even Mick knows how to do this. It's veryl ikely I might need to put this issue on hold.

rzvoncek commented 1 year ago

Putting this issue on hold.

In #655 I managed to add ITs for 4.1.3 and trunk, but had to exclude the local storage backend, which runs some scenarios (namely @11 and @18 at the very least) that do things that don't work.

The main thing that does not work is the sstableloader load when a client-server encryption is enabled. I've asked at ASF slack, where it seems to be a known issue, but the fix to replace the java-driver is not good enough to pursue. I had another fix, where I disabled the client-server encryption, but it didn't work anyway.

Then there is the issue that the management API currently does not work with Cassanra trunk anyway.