Bug: Build with Java 17
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 27/Aug/21 12:55
Resolved: 16/Sep/24 17:58

  This ticket is intended to group all issues found to support Java 17 in the future.

Upgrade steps:
 * [Dependencies |https://mvnrepository.com/artifact/org.apache.cassandra/cassandra-all/4.0.1]to be updated (not all but at least those that require an update in order to work with Java 17)
 * More encapsulated JDK internal APIs. Some of the issues might be solved with the dependencies updates
 * Currently trunk compiles if we remove the Nashorn dependency (ant script tag, used for the test environment; UDFs) . The oracle recommendation to use  Nashorn-core won't work for the project as it is under GPL 2.0. Most probably we will opt in for graal-sdk licensed under UPL
 * All tests to be cleaned
 * CI environment to be setup

*NOTE:* GC tuning, performance testing were never agreed to be part of this ticket.

Below is a snapshot of current CI failures with JDK17, it will be updated on a regular basis with a date of update

*July 15th 2023*
|| ||Failing Test Classes||Ticket Numbers||
| |_Python DTests_| |
|1|-test_sjk-|CASSANDRA-18343|
| |_Java Ditributed Tests_| |
|1-6|-org.apache.cassandra.distributed.test.ReprepareOldBehaviourTest - all tests,-
-org.apache.cassandra.distributed.test.PrepareBatchStatementsTest - all tests,-
-org.apache.cassandra.distributed.test.IPMembershipTest - both tests,-
-org.apache.cassandra.distributed.test.MixedModeFuzzTest,- 
-org.apache.cassandra.distributed.test.ReprepareFuzzTest,-
-org.apache.cassandra.distributed.test.ReprepareNewBehaviourTest-|CASSANDRA-16304|
|7,8|-org.apache.cassandra.distributed.test.NativeTransportEncryptionOptionsTest - all tests-
-org.apache.cassandra.distributed.test.InternodeEncryptionOptionsTest - all tests-|Both tests suffer from CASSANDRA-18180 -
*ready to commit; blocked on being ready to drop JDK8*
 
fwiw, using the CASSANDRA-18180 branch, only the negotiatedProtocolMustBeAcceptedProtocolTest fails in both these tests.
 
EDIT: We will need a ticket for this one post CASSANDRA-18180. TLSv1.1 failed to negotiate (netty complains about certificate_unknown). Changes in JDK17 config to be checked - done
 
EDIT2: CASSANDRA-18540|
|-9-|-org.apache.cassandra.distributed.test.SSTableLoaderEncryptionOptionsTest - 2 tests-|CASSANDRA-18180 ready to commit; blocked on being ready to drop JDK8|
| |_Unit Tests_| |
|1|-org.apache.cassandra.repair.RepairJobTest - 1 test-|CASSANDRA-18329|
|2|-org.apache.cassandra.security.SSLFactoryTest - all tests-|CASSANDRA-17992|
|3,4|-org.apache.cassandra.db.memtable.MemtableSizeOffheapBuffersTest,-
-org.apache.cassandra.utils.concurrent.RefCountedTest-|CASSANDRA-18329|
|5,6|-org.apache.cassandra.cql3.validation.entities.UFJavaTest,-
-org.apache.cassandra.cql3.validation.entities.UFSecurityTest-|CASSANDRA-18190; ready to commit; blocked on being ready to drop JDK8|
|7|-org.apache.cassandra.cql3.EmptyValuesTest-|CASSANDRA-18436|
|8|{-}org.apache.cassandra.transport.MessagePayloadTest{-}.jdk17-|CASSANDRA-18437|
|9|-StandaloneSplitterWithCQLTesterTest/testSplittingMultipleSSTables-|CASSANDRA-18685|
| |_Burn tests_| |
|1|-org.apache.cassandra.transport.DriverBurnTest.measureLargeV4WithCompression-|CASSANDRA-18570|