Fix ReadCommand serializedSize() using incorrect epoch

patch by Aleksey Yeschenko; reviewed by Alex Petrov for CASSANDRA-21438
This commit is contained in:
Aleksey Yeshchenko 2026-06-01 12:57:01 +01:00
parent f67f4ead45
commit ef6367ed10
2 changed files with 2 additions and 1 deletions

View File

@ -1,4 +1,5 @@
6.0-alpha2 6.0-alpha2
* Fix ReadCommand serializedSize() using incorrect epoch (CASSANDRA-21438)
* Allocation improvements in ProtocolVersion, StorageProxy and MerkleTree (CASSANDRA-21199) * Allocation improvements in ProtocolVersion, StorageProxy and MerkleTree (CASSANDRA-21199)
* Dont leave autocompaction disabled during bootstrap and replace (CASSANDRA-21236) * Dont leave autocompaction disabled during bootstrap and replace (CASSANDRA-21236)
* Make nodetool abortbootstrap more robust (CASSANDRA-21235) * Make nodetool abortbootstrap more robust (CASSANDRA-21235)

View File

@ -1520,7 +1520,7 @@ public abstract class ReadCommand extends AbstractReadQuery
return 2 // kind + flags return 2 // kind + flags
+ (command.isDigestQuery() ? TypeSizes.sizeofUnsignedVInt(command.digestVersion()) : 0) + (command.isDigestQuery() ? TypeSizes.sizeofUnsignedVInt(command.digestVersion()) : 0)
+ command.metadata().id.serializedSize() + command.metadata().id.serializedSize()
+ (version >= MessagingService.VERSION_60 ? Epoch.serializer.serializedSize(command.metadata().epoch) : 0) + (version >= MessagingService.VERSION_60 ? Epoch.serializer.serializedSize(command.serializedAtEpoch) : 0)
+ TypeSizes.INT_SIZE // command.nowInSec() is serialized as uint + TypeSizes.INT_SIZE // command.nowInSec() is serialized as uint
+ ColumnFilter.serializer.serializedSize(command.columnFilter(), version) + ColumnFilter.serializer.serializedSize(command.columnFilter(), version)
+ RowFilter.serializer.serializedSize(command.rowFilter(), version) + RowFilter.serializer.serializedSize(command.rowFilter(), version)