Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Correctness - Unrecoverable Corruption / Loss
-
Low
-
Low Hanging Fruit
-
User Report
-
All
-
None
-
Description
In bulk writer after writing SSTables, written data to SSTables is read back again to perform validations before shipping the files to the Cassandra instances. The logic to validate the SSTables assumes Murmur3Partitioner. This validation fails however when a bulk writer job is running against a cluster using the RandomPartitioner with the following stacktrace:
java.lang.RuntimeException: java.lang.IllegalStateException: Partitioner in ValidationMetadata does not match TableMetaData: org.apache.cassandra.dht.RandomPartitioner vs. org.apache.cassandra.dht.Murmur3Partitioner at org.apache.cassandra.spark.utils.Throwing.lambda$function$2(Throwing.java:84) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1707) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at org.apache.cassandra.spark.data.BasicSupplier.openAll(BasicSupplier.java:44) at org.apache.cassandra.bridge.CassandraBridgeImplementation.getCompactionScanner(CassandraBridgeImplementation.java:248) at org.apache.cassandra.spark.data.DataLayer.openCompactionScanner(DataLayer.java:262) at org.apache.cassandra.spark.bulkwriter.SSTableWriter.validateSSTables(SSTableWriter.java:129) at org.apache.cassandra.spark.bulkwriter.SSTableWriter.close(SSTableWriter.java:113) at org.apache.cassandra.spark.bulkwriter.RecordWriter.finalizeSSTable(RecordWriter.java:224) at org.apache.cassandra.spark.bulkwriter.RecordWriter.write(RecordWriter.java:122) ... 15 more