Fix RequestFailureReason serializer and nits in a few others

patch by Aleksey Yeschenko; reviewed by Alex Petrov for CASSANDRA-21437
This commit is contained in:
Aleksey Yeshchenko 2026-05-14 16:16:29 +01:00
parent a1352e9be9
commit 64a3fc0d3f
13 changed files with 30 additions and 17 deletions

View File

@ -1,4 +1,5 @@
5.0.9
* Fix RequestFailureReason serializer and nits in a few others (CASSANDRA-21437)
* Remove golang dependency in gen-doc and replace with python implementation (CASSANDRA-21432)
* Use estimated compressed size for tables to check if there is enough free space for a compaction (CASSANDRA-21245)
* Fix failing select on system_views.settings for non-string keys (CASSANDRA-21348)

View File

@ -58,7 +58,7 @@ public class SerializingCacheProvider implements CacheProvider<RowCacheKey, IRow
public long serializedSize(IRowCacheEntry entry)
{
int size = TypeSizes.sizeof(true);
long size = TypeSizes.sizeof(true);
if (entry instanceof RowCacheSentinel)
size += TypeSizes.sizeof(((RowCacheSentinel) entry).sentinelId);
else

View File

@ -231,9 +231,9 @@ public abstract class AbstractBounds<T extends RingPosition<T>> implements Seria
public long serializedSize(AbstractBounds<T> ab, int version)
{
// !WARNING! See serialize method above for why we still need to have that condition.
int size = version < MessagingService.VERSION_30
? TypeSizes.sizeof(kindInt(ab))
: 1;
long size = version < MessagingService.VERSION_30
? TypeSizes.sizeof(kindInt(ab))
: 1;
size += serializer.serializedSize(ab.left, version);
size += serializer.serializedSize(ab.right, version);
return size;

View File

@ -96,22 +96,25 @@ public enum RequestFailureReason
{
}
@Override
public void serialize(RequestFailureReason reason, DataOutputPlus out, int version) throws IOException
{
assert version >= VERSION_40;
out.writeUnsignedVInt32(reason.code);
}
@Override
public RequestFailureReason deserialize(DataInputPlus in, int version) throws IOException
{
assert version >= VERSION_40;
return fromCode(in.readUnsignedVInt32());
}
@Override
public long serializedSize(RequestFailureReason reason, int version)
{
assert version >= VERSION_40;
return VIntCoding.computeVIntSize(reason.code);
return VIntCoding.computeUnsignedVIntSize(reason.code);
}
}
}

View File

@ -60,6 +60,7 @@ public class GossipDigestAck
class GossipDigestAckSerializer implements IVersionedSerializer<GossipDigestAck>
{
@Override
public void serialize(GossipDigestAck gDigestAckMessage, DataOutputPlus out, int version) throws IOException
{
GossipDigestSerializationHelper.serialize(gDigestAckMessage.gDigestList, out, version);
@ -72,6 +73,7 @@ class GossipDigestAckSerializer implements IVersionedSerializer<GossipDigestAck>
}
}
@Override
public GossipDigestAck deserialize(DataInputPlus in, int version) throws IOException
{
List<GossipDigest> gDigestList = GossipDigestSerializationHelper.deserialize(in, version);
@ -87,9 +89,10 @@ class GossipDigestAckSerializer implements IVersionedSerializer<GossipDigestAck>
return new GossipDigestAck(gDigestList, epStateMap);
}
@Override
public long serializedSize(GossipDigestAck ack, int version)
{
int size = GossipDigestSerializationHelper.serializedSize(ack.gDigestList, version);
long size = GossipDigestSerializationHelper.serializedSize(ack.gDigestList, version);
size += TypeSizes.sizeof(ack.epStateMap.size());
for (Map.Entry<InetAddressAndPort, EndpointState> entry : ack.epStateMap.entrySet())
size += inetAddressAndPortSerializer.serializedSize(entry.getKey(), version)

View File

@ -70,9 +70,9 @@ class GossipDigestSerializationHelper
return gDigests;
}
static int serializedSize(List<GossipDigest> digests, int version)
static long serializedSize(List<GossipDigest> digests, int version)
{
int size = TypeSizes.sizeof(digests.size());
long size = TypeSizes.sizeof(digests.size());
for (GossipDigest digest : digests)
size += GossipDigest.serializer.serializedSize(digest, version);
return size;

View File

@ -49,7 +49,7 @@ class CustomParamsSerializer implements IVersionedSerializer<Map<String,byte[]>>
@Override
public long serializedSize(Map<String, byte[]> t, int version)
{
int size = TypeSizes.sizeofUnsignedVInt(t.size());
long size = TypeSizes.sizeofUnsignedVInt(t.size());
for (Map.Entry<String,byte[]> e : t.entrySet())
{
size += TypeSizes.sizeof(e.getKey());

View File

@ -152,7 +152,7 @@ public class RepairJobDesc
public long serializedSize(RepairJobDesc desc, int version)
{
int size = TypeSizes.sizeof(desc.parentSessionId != null);
long size = TypeSizes.sizeof(desc.parentSessionId != null);
if (desc.parentSessionId != null)
size += TimeUUID.sizeInBytes();
size += TimeUUID.sizeInBytes();

View File

@ -32,6 +32,7 @@ public class SchemaMutationsSerializer implements IVersionedSerializer<Collectio
{
public static final SchemaMutationsSerializer instance = new SchemaMutationsSerializer();
@Override
public void serialize(Collection<Mutation> schema, DataOutputPlus out, int version) throws IOException
{
out.writeInt(schema.size());
@ -39,6 +40,7 @@ public class SchemaMutationsSerializer implements IVersionedSerializer<Collectio
Mutation.serializer.serialize(mutation, out, version);
}
@Override
public Collection<Mutation> deserialize(DataInputPlus in, int version) throws IOException
{
int count = in.readInt();
@ -50,9 +52,10 @@ public class SchemaMutationsSerializer implements IVersionedSerializer<Collectio
return schema;
}
@Override
public long serializedSize(Collection<Mutation> schema, int version)
{
int size = TypeSizes.sizeof(schema.size());
long size = TypeSizes.sizeof(schema.size());
for (Mutation mutation : schema)
size += mutation.serializedSize(version);
return size;

View File

@ -76,6 +76,7 @@ public class StreamRequest
public static class StreamRequestSerializer implements IVersionedSerializer<StreamRequest>
{
@Override
public void serialize(StreamRequest request, DataOutputPlus out, int version) throws IOException
{
out.writeUTF(request.keyspace);
@ -100,6 +101,7 @@ public class StreamRequest
}
}
@Override
public StreamRequest deserialize(DataInputPlus in, int version) throws IOException
{
String keyspace = in.readUTF();
@ -131,13 +133,14 @@ public class StreamRequest
return replicas.build();
}
@Override
public long serializedSize(StreamRequest request, int version)
{
int size = TypeSizes.sizeof(request.keyspace);
long size = TypeSizes.sizeof(request.keyspace);
size += TypeSizes.sizeof(request.columnFamilies.size());
size += inetAddressAndPortSerializer.serializedSize(request.full.endpoint(), version);
size += replicasSerializedSize(request.transientReplicas, version);
size += replicasSerializedSize(request.full, version);
size += replicasSerializedSize(request.transientReplicas, version);
for (String cf : request.columnFamilies)
size += TypeSizes.sizeof(cf);
return size;

View File

@ -64,7 +64,7 @@ public final class BloomFilterSerializer implements IGenericSerializer<BloomFilt
@Override
public long serializedSize(BloomFilter bf)
{
int size = TypeSizes.sizeof(bf.hashCount); // hash count
long size = TypeSizes.sizeof(bf.hashCount); // hash count
size += bf.bitset.serializedSize();
return size;
}

View File

@ -429,7 +429,7 @@ public class EstimatedHistogram implements DoubleToLongFunction
public long serializedSize(EstimatedHistogram eh)
{
int size = 0;
long size = 0;
long[] offsets = eh.getBucketOffsets();
long[] buckets = eh.getBuckets(false);

View File

@ -65,9 +65,9 @@ public class RangesSerializer implements IVersionedSerializer<Collection<Range<T
@Override
public long serializedSize(Collection<Range<Token>> ranges, int version)
{
int size = TypeSizes.sizeof(ranges.size());
long size = TypeSizes.sizeof(ranges.size());
if (ranges.size() > 0)
size += ranges.size() * 2 * Token.serializer.serializedSize(ranges.iterator().next().left, version);
size += ranges.size() * 2L * Token.serializer.serializedSize(ranges.iterator().next().left, version);
return size;
}
}