In this commit the `org.apache.cassandra.io.sstable.CQLSSTableWriter#build` method synchronizes on the
`Schema.instance` object (instead of the `CQLSSTableWriter.class`) to prevent concurrent schema operations
to fail when the offline tools also updates the schema.
For example, a table creation operation, which modifies the keyspace tables metadata, might end up
missing the update when a concurrent call to the `CQLSSTableWriter#build` method is accessing the
singleton Schema instance.
Patch by Francisco Guerrero, reviewed by Yifan Cai, Maxwell Guo, Alex Petrov for CASSANDRA-18317.
This patch also removes compress-lzf library (leftover from CASSANDRA-12229)
as well as it makes byte-buddy dependencies to be test scoped.
patch by Stefan Miklosovic; reviewed by Michael Semb Wever for CASSANDRA-18877
There are a couple of fixes in this patch. As explained on the ticket, some of the flaky failures are a race of two events that cause the termination of the connection. First is a legitimate close as a result of expected failures. In this case, the server sends the error message and closes the connection. The test expects to receive that message. However, the test was sending more messages that couldn't be received because the server already closed the connection, and they were bounced by the OS, causing immediate connection shutdown on the client side, even before it could receive the error message.
The fix is to stop sending the messages after sending the message, which is expected to cause a failure. Some other accompanying modifications include using Awaitility to wait for specific events and consider the configured maximum number of consecutive failures.
Also added some more logging to help investigate failures in the future.
Patch by Jacek Lewandowski; reviewed by Sam Tunnicliffe for CASSANDRA-16949
- Don't create uber jar for microbenchmarks
- Add async profiler to jmh tests
- Benchmark classes names validation
- Add jmh.args property to make it possible passing extra args to JMH
- Add missing test/anttasks to idea configuration
Patch by Jacek Lewandowski; reviewed by Branimir Lambov, Maxim Muzafarov, Stefan Miklosovic for CASSANDRA-18871
java11-runtime and java8-runtime for Cassandra 4.x branches and
java17-runtime with java11-runtime for Cassandra 5.x branches enable
users to use arbitrary JDK installation if it provides such runtime by
installing it from 3rd-party repositories.
By specifying only OpenJDK-based packages in Depends in debian/control file,
it was not possible to use other JDKs but that one.
patch by Jackson Fleming; reviewed by Stefan Miklosovic and Brandon Williams for CASSANDRA-18844
Patch by Jacek Lewandowski; reviewed by Berenguer Blasi and Jeremiah Jordan for CASSANDRA-18821
# Conflicts:
# test/distributed/org/apache/cassandra/distributed/test/ColumnMaskTest.java
# test/unit/org/apache/cassandra/cql3/CQLTester.java