av9ash/GitBugs huggingface dataset:
Bug: DOC - Improve C* configuration docs
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 19/May/20 21:19
Resolved: 03/Jun/20 18:35

Two sections, Getting started > Configuring  and Configuration, could use improvement. 

Adding information about some of the other config files besides cassandra.yaml is one key goal. 

 

At the risk of contaminating one ticket with another project, I started creating a separate glossary file, so that key terms in configuration can be linked to a glossary that describes terms.
Bug: Provide ability to configure IAuditLogger
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 22/Apr/20 07:22
Resolved: 20/May/20 14:51

Currently there is a parameterless constructor expected for IAuditLogger instances. There is not any way how to "inject" configuration properties from cassandra.yaml into these concrete classes. This would be very handy for custom IAuditLogger implementations.

 

PR: [https://github.com/apache/cassandra/pull/555]

[|https://github.com/smiklosovic/cassandra/tree/CASSANDRA-15748]
Bug: Fix flaky org.apache.cassandra.schema.SchemaTest.testTransKsMigration-cdc
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 01/Jun/20 10:27
Resolved: 09/Jun/20 08:44

Failing for the past [28 builds|https://ci-cassandra.apache.org/job/Cassandra-trunk/153/testReport/org.apache.cassandra.schema/SchemaTest/testTransKsMigration_cdc/]

java.lang.NullPointerException
	at org.apache.cassandra.db.commitlog.CommitLogSegmentManagerCDC$CDCSizeTracker.shutdown(CommitLogSegmentManagerCDC.java:312)
	at org.apache.cassandra.db.commitlog.CommitLogSegmentManagerCDC.shutdown(CommitLogSegmentManagerCDC.java:89)
	at org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.stopUnsafe(AbstractCommitLogSegmentManager.java:413)
	at org.apache.cassandra.db.commitlog.CommitLog.stopUnsafe(CommitLog.java:467)
	at org.apache.cassandra.SchemaLoader.cleanupAndLeaveDirs(SchemaLoader.java:785)
	at org.apache.cassandra.schema.SchemaTest.testTransKsMigration(SchemaTest.java:46)
Bug: pushed_notifications_test.TestPushedNotifications.test_restart_node_localhost failure
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 19/Jun/20 07:23
Resolved: 19/Jun/20 13:38

pushed_notifications_test.TestPushedNotifications.test_restart_node_localhost has been failing for a [while|https://ci-cassandra.apache.org/job/Cassandra-trunk/176/testReport/dtest.pushed_notifications_test/TestPushedNotifications/test_restart_node_localhost/history/] and fails locally
Bug: JAVA 11: test_short_read - consistency_test.TestConsistency
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 23/Jun/20 02:58
Resolved: 09/Jul/20 14:32

JAVA 11: test_short_read - consistency_test.TestConsistency

Failing locally and in CircleCI:

https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/222/workflows/11202c7e-6c94-4d4e-bbbf-9e2fa9791ad0/jobs/1337
Bug: Close channel and reduce buffer allocation during entire sstable streaming with SSL
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 24/Jun/20 11:47
Resolved: 07/Jul/20 00:21

CASSANDRA-15740 added the ability to stream entire sstable by loading on-disk file into user-space off-heap buffer when SSL is enabled, because netty doesn't support zero-copy with SSL.

But there are two issues:
 # file channel is not closed.
 # 1mb batch size is used. 1mb exceeds buffer pool's max allocation size, thus it's all allocated outside the pool and will cause large amount of allocations.

[Patch|https://github.com/apache/cassandra/pull/651]:
 # close file channel when the last batch is loaded into off-heap bytebuffer. I don't think we need to wait until buffer is flushed by netty.
 # reduce the batch to 64kb which is more buffer pool friendly when streaming entire sstable with SSL.
Bug: test_speculative_data_request - read_repair_test.TestSpeculativeReadRepair
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 06/May/20 19:43
Resolved: 21/Jul/20 15:51

Failing on the latest trunk here:
https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/127/workflows/dfba669d-4a5c-4553-b6a2-85647d0d8d2b/jobs/668/tests
Failing once in 30 times as per Jenkins:
https://jenkins-cm4.apache.org/job/Cassandra-trunk-dtest/69/testReport/dtest.read_repair_test/TestSpeculativeReadRepair/test_speculative_data_request/
Bug: Flaky dtest hintedhandoff_test.py::TestHintedHandoffConfig::test_hintedhandoff_setmaxwindow
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 09/Jun/20 12:25
Resolved: 23/Oct/20 04:34

I've seen this fail a couple of times under JDK11, when it doesn't appear to be related to the changes under test.
Bug:  Support in cassandra-in-jvm-dtest-api for replacing logback with alternate logger
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 10/Apr/20 22:31
Resolved: 20/Apr/20 15:53

Not all forks use logback, and there is an (prematurely) closed ticket indicating that it would be valuable CASSANDRA-13212.

 
Add support for making the log file configuration property and log file pathname configurable rather than hard-coding to logback.
 
Also had to add 'org.w3c.dom' to the InstanceClassLoader so that log4j2 could load its configuration, but looks like that can be handled with the changes in CASSANDRA-15713
Bug: Fix flaky test incrementalSSTableSelection - org.apache.cassandra.db.streaming.CassandraStreamManagerTest
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 20/May/20 18:45
Resolved: 29/May/20 09:28

Build link: https://app.circleci.com/pipelines/github/dcapwell/cassandra/287/workflows/06baf3db-7094-431f-920d-e8fcd1da9cce/jobs/1398 

{code}
java.lang.RuntimeException: java.nio.file.NoSuchFileException: /tmp/cassandra/build/test/cassandra/data:2/ks_1589913975959/tbl-051c0a709a0111eab5fb6f52366536f8/na-4-big-Statistics.db
	at org.apache.cassandra.io.util.ChannelProxy.openChannel(ChannelProxy.java:55)
	at org.apache.cassandra.io.util.ChannelProxy.<init>(ChannelProxy.java:66)
	at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:315)
	at org.apache.cassandra.io.sstable.metadata.MetadataSerializer.deserialize(MetadataSerializer.java:126)
	at org.apache.cassandra.io.sstable.metadata.MetadataSerializer.deserialize(MetadataSerializer.java:136)
	at org.apache.cassandra.io.sstable.format.SSTableReader.reloadSSTableMetadata(SSTableReader.java:2047)
	at org.apache.cassandra.db.streaming.CassandraStreamManagerTest.mutateRepaired(CassandraStreamManagerTest.java:128)
	at org.apache.cassandra.db.streaming.CassandraStreamManagerTest.incrementalSSTableSelection(CassandraStreamManagerTest.java:175)
Caused by: java.nio.file.NoSuchFileException: /tmp/cassandra/build/test/cassandra/data:2/ks_1589913975959/tbl-051c0a709a0111eab5fb6f52366536f8/na-4-big-Statistics.db
	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
	at sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:177)
	at java.nio.channels.FileChannel.open(FileChannel.java:287)
	at java.nio.channels.FileChannel.open(FileChannel.java:335)
	at org.apache.cassandra.io.util.ChannelProxy.openChannel(ChannelProxy.java:51)
{code}
Bug: python dtest regression caused by CASSANDRA-15637
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 29/Apr/20 19:27
Resolved: 14/May/20 07:38

CASSANDRA-15637 deprecated size_estimates in favor of table_estimates to allow for local primary range estimates (needed for MapReduce).  This appears to have caused a regression in the python dtest nodetool_test.TestNodetool. test_refresh_size_estimates_clears_invalid_entries (as seen by [Circle CI|https://app.circleci.com/pipelines/github/dcapwell/cassandra/255/workflows/21907001-93ed-4963-9314-6a0ac6ea0f1d/jobs/1246/tests]  and [Jenkins|https://ci-cassandra.apache.org/job/Cassandra-trunk-dtest/56/]).
Bug: Missing commas between endpoints in nodetool describering
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 02/Apr/20 11:55
Resolved: 07/Apr/20 08:35

*Setup*

3-node cluster created with ccm

{noformat}
cqlsh> create keyspace ks with replication = {'class': 'SimpleStrategy', 'replication_factor': 2};
{noformat}

*trunk*:

{noformat}
$ bin/nodetool describering ks --port 7100
Schema Version:295e8142-fc9f-3f76-b6db-24430ff572e5
TokenRange:
        TokenRange(start_token:-9223372036854775808, end_token:-3074457345618258603endpoints:[127.0.0.2, 127.0.0.3]rpc_endpoints:[127.0.0.2, 127.0.0.3]endpoint_details:[EndpointDetails(host:127.0.0.2, datacenter:d
atacenter1, rack:rack1), EndpointDetails(host:127.0.0.3, datacenter:datacenter1, rack:rack1)])
        TokenRange(start_token:-3074457345618258603, end_token:3074457345618258602endpoints:[127.0.0.3, 127.0.0.1]rpc_endpoints:[127.0.0.3, /127.0.0.1]endpoint_details:[EndpointDetails(host:127.0.0.3, datacenter:d
atacenter1, rack:rack1), EndpointDetails(host:127.0.0.1, datacenter:datacenter1, rack:rack1)])
        TokenRange(start_token:3074457345618258602, end_token:-9223372036854775808endpoints:[127.0.0.1, 127.0.0.2]rpc_endpoints:[/127.0.0.1, 127.0.0.2]endpoint_details:[EndpointDetails(host:127.0.0.1, datacenter:d
atacenter1, rack:rack1), EndpointDetails(host:127.0.0.2, datacenter:datacenter1, rack:rack1)])
{noformat}

*3.11* (correct output)

{noformat}
bin/nodetool describering ks --port 7100
Schema Version:c8fd35ea-6f49-3e77-85e7-a92e79df8696
TokenRange:
        TokenRange(start_token:-9223372036854775808, end_token:-3074457345618258603, endpoints:[127.0.0.2, 127.0.0.3], rpc_endpoints:[127.0.0.2, 127.0.0.3], endpoint_details:[EndpointDetails(host:127.0.0.2, datace
nter:datacenter1, rack:rack1), EndpointDetails(host:127.0.0.3, datacenter:datacenter1, rack:rack1)])
        TokenRange(start_token:-3074457345618258603, end_token:3074457345618258602, endpoints:[127.0.0.3, 127.0.0.1], rpc_endpoints:[127.0.0.3, 127.0.0.1], endpoint_details:[EndpointDetails(host:127.0.0.3, datacen
ter:datacenter1, rack:rack1), EndpointDetails(host:127.0.0.1, datacenter:datacenter1, rack:rack1)])
        TokenRange(start_token:3074457345618258602, end_token:-9223372036854775808, endpoints:[127.0.0.1, 127.0.0.2], rpc_endpoints:[127.0.0.1, 127.0.0.2], endpoint_details:[EndpointDetails(host:127.0.0.1, datacen
ter:datacenter1, rack:rack1), EndpointDetails(host:127.0.0.2, datacenter:datacenter1, rack:rack1)])
{noformat}
Bug: Fix NPE in SimpleReadWriteTest after test framework behavior change
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 02/Apr/20 15:44
Resolved: 02/Apr/20 21:11

In JVM dtests, all exceptions thrown in a request execution used to be always wrapped in a RuntimeException.

After CASSANDRA-15650 changes, the behavior has been changed to: If the exception is a RuntimeException, just rethrow it, otherwise wrap in RuntimeException, as you can see in: [https://github.com/apache/cassandra/commit/dfc279a22a5563ac7a832a586914d5410426e9b7#diff-0b019281b7e97248577c82af0e663ef4R211]

This causes the tests that were always extracting the cause from the wrapping RuntimeException before, to check the root cause of the error, to throw a NPE when they call {{getCause()}}, tests such as {{SimpleReadWriteTest#readWithSchemaDisagreement}} and {{SimpleReadWriteTest#writeWithSchemaDisagreement}}.

Can be fixed by simply not unwrapping the cause in those tests, use the thrown exception directly, if the behavior of "not always wrapping in RuntimeException" is agreed to be correct.
Bug: nodetool enablefullquerylog doesn't allow caller to make non-blocking
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 19/May/20 00:52
Resolved: 20/May/20 11:57

{code}
$ ./bin/nodetool enablefullquerylog --path /tmp/deleteme --blocking false
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
nodetool: Found unexpected parameters: [false]
See 'nodetool help' or 'nodetool help <command>'.
{code}

The root cause is boolean is special cased in airlift, so any time —blocking is set it gets turned on.
Bug: Fix cqlsh output test
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 08/Apr/20 09:52
Resolved: 09/Apr/20 12:57

https://ci-cassandra.apache.org/view/branches/job/Cassandra-trunk/45/testReport/cqlshlib.test.test_cqlsh_output/TestCqlshOutput/

{code}
Sequences differ: ['CRE[438 chars]nt', ") WITH additional_write_policy = '99p'",[710 chars], ''] != ['CRE[438 chars]nt', ') WITH bloom_filter_fp_chance = 0.01', "[711 chars], '']

First differing element 17:
") WITH additional_write_policy = '99p'"
') WITH bloom_filter_fp_chance = 0.01'

Diff is 1475 characters long. Set self.maxDiff to None to see it.
    """Fail immediately, with the given message."""
>>  raise self.failureException('Sequences differ: [\'CRE[438 chars]nt\', ") WITH additional_write_policy = \'99p\'",[710 chars], \'\'] != [\'CRE[438 chars]nt\', \') WITH bloom_filter_fp_chance = 0.01\', "[711 chars], \'\']\n\nFirst differing element 17:\n") WITH additional_write_policy = \'99p\'"\n\') WITH bloom_filter_fp_chance = 0.01\'\n\nDiff is 1475 characters long. Set self.maxDiff to None to see it.')
{code}
Bug: Fix cqlsh completion test
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 08/Apr/20 09:33
Resolved: 09/Apr/20 09:16

This has been failing for a while now because *system_views* and *system_virtual_schema* are occuring in the completion.

{code}
cqlshlib.test.test_cqlsh_completion.TestCqlshCompletion.test_complete_in_drop_keyspace (from nosetests)

Failing for the past 1 build (Since Unstable#42 )
Took 2 sec.
Error Message
Items in the second set but not the first:
'system_views'
'system_virtual_schema'
    """Fail immediately, with the given message."""
>>  raise self.failureException("Items in the second set but not the first:\n'system_views'\n'system_virtual_schema'")
{code}
Bug: Make clear in the documentation that stress is not a secured tool
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 22/Apr/20 09:44
Resolved: 06/May/20 07:59

It has been reported that the serialization used by the stress server was unsafe.
As Stress has never intended to be a secure application, the problem should not be fixed but the documentation should be updated to reflect that fact.
Bug: Fix NoSuchMethodError: 'org.apache.cassandra.distributed.api.NodeToolResult$Asserts 
Status: Resolved
Priority: Normal
Resolution: Duplicate
Created: 06/Apr/20 12:04
Resolved: 06/Apr/20 12:11

It seems that there was a regression introduced with CASSANDRA-15650 as the first failures of that kind started to happen [here.|https://ci-cassandra.apache.org/view/branches/job/Cassandra-trunk/30/#showFailuresLink]

 {code}
[junit-timeout] Testcase: prepareRPCTimeout[DATACENTER_AWARE/true](org.apache.cassandra.distributed.test.PreviewRepairCoordinatorTimeoutTest):	Caused an ERROR
[junit-timeout] 'org.apache.cassandra.distributed.api.NodeToolResult$Asserts org.apache.cassandra.distributed.api.NodeToolResult$Asserts.errorContains(java.lang.String[])'
[junit-timeout] java.lang.NoSuchMethodError: 'org.apache.cassandra.distributed.api.NodeToolResult$Asserts org.apache.cassandra.distributed.api.NodeToolResult$Asserts.errorContains(java.lang.String[])'
[junit-timeout] 	at org.apache.cassandra.distributed.test.RepairCoordinatorTimeout.lambda$prepareRPCTimeout$0(RepairCoordinatorTimeout.java:45)
[junit-timeout] 	at org.apache.cassandra.utils.AssertUtil.lambda$assertTimeoutPreemptively$0(AssertUtil.java:39)
[junit-timeout] 	at org.apache.cassandra.utils.AssertUtil.lambda$assertTimeoutPreemptively$1(AssertUtil.java:67)
[junit-timeout] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[junit-timeout] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[junit-timeout] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[junit-timeout] 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[junit-timeout] 	at java.base/java.lang.Thread.run(Thread.java:834)
{code}
Bug: dtest.consistency_test/TestAccuracy/test_simple_strategy_each_quorum_counters/
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 06/May/20 19:01
Resolved: 13/May/20 16:14

Flakey dtest, failure details below:
https://jenkins-cm4.apache.org/job/Cassandra-trunk-dtest/69/testReport/junit/dtest.consistency_test/TestAccuracy/test_simple_strategy_each_quorum_counters/
Bug: CASSANDRA-15650 broke CasWriteTest causing it to fail and hang
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 03/Apr/20 17:55
Resolved: 06/Apr/20 12:54

CasWriteTest changed IsolatedExecutor to rethrow runtime exceptions rather than wrap, this test assumes they are wrapped which causes tests to fail and casWriteContentionTimeoutTest to timeout.

[Circle CI|https://circleci.com/gh/dcapwell/cassandra/tree/bug%2FCASSANDRA-15689]
Bug: CASSANDRA-15650 was merged after dtest refactor and modified classes no longer in the project
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 02/Apr/20 17:54
Resolved: 06/Apr/20 17:09

CASSANDRA-15650 was based off commits before CASSANDRA-15539 which removed some of the files modified in CASSANDRA-15650.  The tests were passing pre-merge but off earlier commits.  On commit they started failing since the dtest API no longer match so produces the following exception

{code}
[junit-timeout] org.apache.cassandra.distributed.api.NodeToolResult$Asserts.errorContains([Ljava/lang/String;)Lorg/apache/cassandra/distributed/api/NodeToolResult$Asserts;
[junit-timeout] java.lang.NoSuchMethodError: org.apache.cassandra.distributed.api.NodeToolResult$Asserts.errorContains([Ljava/lang/String;)Lorg/apache/cassandra/distributed/api/NodeToolResult$Asserts;
[junit-timeout]         at org.apache.cassandra.distributed.test.RepairCoordinatorFast.lambda$unknownHost$5(RepairCoordinatorFast.java:216)
[junit-timeout]         at org.apache.cassandra.utils.AssertUtil.lambda$assertTimeoutPreemptively$0(AssertUtil.java:39)
[junit-timeout]         at org.apache.cassandra.utils.AssertUtil.lambda$assertTimeoutPreemptively$1(AssertUtil.java:67)
[junit-timeout]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[junit-timeout]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[junit-timeout]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[junit-timeout]         at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[junit-timeout]         at java.lang.Thread.run(Thread.java:748)
{code}

Root cause was 4 files exited which should have been deleted in CASSANDRA-15539.  Since they were not when CASSANDRA-15650 modified one it didn't cause a merge conflict, but when the test runs it conflicts and fails.


[Circle CI|https://circleci.com/gh/dcapwell/cassandra/tree/bug%2FCASSANDRA-15684]
Bug: C* 4.0 is missing a way to identify transient/non-transient SSTables on disk
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 12/May/20 16:05
Resolved: 20/May/20 04:16

Currently, there is no way to identify SSTables that were created as transient replicated data. Even thought the feature is experimental we should open that up for those that want to experiment. This seems to be an oversight. I have added the missing line of code to the SStableMetadataViewer and will attach a patch shortly.
Bug: Compression test failure
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 04/May/20 08:45
Resolved: 05/May/20 21:18

On CASSANDRA-15560 compression test failed. This was bisected to [9c1bbf3|https://github.com/apache/cassandra/commit/9c1bbf3ac913f9bdf7a0e0922106804af42d2c1e] from CASSANDRA-15379.

Full details here

CC/ [~jolynch] in case he can spot it quick.
Bug: tools/bin/fqltool doesn't work on all distributions
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 19/May/20 04:59
Resolved: 19/May/20 14:37

The line
{code}
if [ ! $1 ]; then break; fi
{code}
doesn't work on all OSes/Linux distributions (e.g. a bare Ubuntu 18.04) with {{#!/bin/sh}} causing {{fqltool}} to fail. The fix is quite simple
Bug: CustomNowInSecondsTest.testSelectQuery() is flaky
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 22/Apr/20 15:28
Resolved: 23/Apr/20 11:57

The test {{CustomNowInSecondsTest.testSelectQuery()}} is flaky, because the {{now}} [calculated here|https://github.com/snazy/cassandra/blob/5242f7d4306f034f32e26834df06ff7fc85a3c16/test/unit/org/apache/cassandra/cql3/CustomNowInSecondsTest.java#L57] but [used here|https://github.com/snazy/cassandra/blob/5242f7d4306f034f32e26834df06ff7fc85a3c16/test/unit/org/apache/cassandra/cql3/CustomNowInSecondsTest.java#L70] can be wrong, if the thread running the test method gets stalled.
The flakiness can be simulated by adding a {{Thread.sleep(1000)}} before the {{executeModify()}}.
Bug: Only calculate 1.0 + dynamicBadnessThreshold once per loop in DynamicEndpointSnitch
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 08/May/20 00:52
Resolved: 08/May/20 16:59

The change to make dynamicBadnessThreshold volatile and mutable in https://issues.apache.org/jira/browse/CASSANDRA-12179 could have minor implications for the performance of this code: https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java#L216. Its better to calculate this once before the loop starts, which has the added benefit that the value is stable throughout the calculation as well.
Bug: EmptyType doesn't override writeValue so could attempt to write bytes when expected not to
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 05/May/20 18:37
Resolved: 20/May/20 20:47

EmptyType.writeValues is defined here https://github.com/apache/cassandra/blob/e394dc0bb32f612a476269010930c617dd1ed3cb/src/java/org/apache/cassandra/db/marshal/AbstractType.java#L407-L414

{code}
public void writeValue(ByteBuffer value, DataOutputPlus out) throws IOException
    {
        assert value.hasRemaining();
        if (valueLengthIfFixed() >= 0)
            out.write(value);
        else
            ByteBufferUtil.writeWithVIntLength(value, out);
    }
{code}

This is fine when the value is empty as the write of empty no-ops (the readValue also noops since the length is 0), but if the value is not empty (possible during upgrades or random bugs) then this could silently cause corruption; ideally this should throw a exception if the ByteBuffer has data.

This was called from org.apache.cassandra.db.rows.BufferCell.Serializer#serialize, here we check to see if data is present or not and update the flags.  If data is present then and only then do we call type.writeValue (which requires bytes is not empty).  The problem is that EmptyType never expects writes to happen, but it still writes them; and does not read them (since it says it is fixed length of 0, so does read(buffer, 0)).
Bug: Support multiple keyspaces in Cassandra-Diff
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 12/May/20 22:12
Resolved: 20/May/20 09:59

Adding the support to run diff comparison of tables across multiple keyspaces to avoid bringing up multiple spark jobs and give a better view of data diffs in the whole cluster. 
Cassandra-diff currently only support compare multiple tables under one single keyspace.
Bug: Submitting Validation requests can block ANTI_ENTROPY stage 
Status: Resolved
Priority: Normal
Resolution: Fixed
Created: 13/May/20 19:03
Resolved: 09/Jun/20 12:46

 RepairMessages are handled on Stage.ANTI_ENTROPY, which has a thread pool with core/max capacity of one, ie. we can only process one message at a time. 
 
Scheduling validation compactions may however block the stage completely, by blocking on CompactionManager's ValidationExecutor while submitting a new validation compaction, in cases where there are already more validations running than can be executed in parallel.