Hi, We are loading SSTable files of different sizes (1 to a few 100,000 records each) into Cassandra (v3.9 on CentOS 7) using JMX bulkload.
Part of the files result in the following root cause exception: Caused by: java.lang.AssertionError at org.apache.cassandra.cache.ChunkCache$CachingRebufferer.<init>(ChunkCache.java:223) at org.apache.cassandra.cache.ChunkCache.wrap(ChunkCache.java:176) at org.apache.cassandra.cache.ChunkCache.maybeWrap(ChunkCache.java:184) at org.apache.cassandra.io.util.BufferedSegmentedFile.createRebufferer(BufferedSegmentedFile.java:42) at org.apache.cassandra.io.util.BufferedSegmentedFile.<init>(BufferedSegmentedFile.java:27) at org.apache.cassandra.io.util.BufferedSegmentedFile$Builder.complete(BufferedSegmentedFile.java:50) at org.apache.cassandra.io.util.SegmentedFile$Builder.complete(SegmentedFile.java:181) at org.apache.cassandra.io.util.SegmentedFile$Builder.buildIndex(SegmentedFile.java:207) at org.apache.cassandra.io.sstable.format.SSTableReader.openForBatch(SSTableReader.java:441) Following the traces I see the following: - In org.apache.cassandra.io.util.SegmentedFile$Builder.buffersize(line 226) Cassandra creates a buffer based on the Index file size with a size that is a multiple of 4k larger than the file size with a max of 64k. - At org.apache.cassandra.cache.ChunkCache$CachingRebufferer.<init>(ChunkCache.java:223), there is a check if the buffer size is a multiple of 2. When trying to load an SSTable with an Index file that is say between 9000 and 10000 bytes, the buffer size may become 12k. But this is not a multiple of 2 and hence the exception. Does anyone have a resolution for this or should I report a bug? Regards, Marcel