Incremental repairs fail on mixed IPv4/v6 addresses serializing SyncRequest

patch by Jon Meredith; reviewed by Caleb Rackliffe for CASSANDRA-18474
This commit is contained in:
Jon Meredith 2023-04-21 15:24:58 -06:00
parent cd9bed0aea
commit 09c1e67598
2 changed files with 6 additions and 3 deletions

View File

@ -1,4 +1,5 @@
4.0.10
* Incremental repairs fail on mixed IPv4/v6 addresses serializing SyncRequest (CASSANDRA-18474)
* Deadlock updating sstable metadata if disk boundaries need reloading (CASSANDRA-18443)
* Fix nested selection of reversed collections (CASSANDRA-17913)

View File

@ -111,7 +111,7 @@ public class SyncRequest extends RepairMessage
public SyncRequest deserialize(DataInputPlus in, int version) throws IOException
{
RepairJobDesc desc = RepairJobDesc.serializer.deserialize(in, version);
InetAddressAndPort owner = inetAddressAndPortSerializer.deserialize(in, version);
InetAddressAndPort initiator = inetAddressAndPortSerializer.deserialize(in, version);
InetAddressAndPort src = inetAddressAndPortSerializer.deserialize(in, version);
InetAddressAndPort dst = inetAddressAndPortSerializer.deserialize(in, version);
int rangesCount = in.readInt();
@ -120,13 +120,15 @@ public class SyncRequest extends RepairMessage
ranges.add((Range<Token>) AbstractBounds.tokenSerializer.deserialize(in, IPartitioner.global(), version));
PreviewKind previewKind = PreviewKind.deserialize(in.readInt());
boolean asymmetric = in.readBoolean();
return new SyncRequest(desc, owner, src, dst, ranges, previewKind, asymmetric);
return new SyncRequest(desc, initiator, src, dst, ranges, previewKind, asymmetric);
}
public long serializedSize(SyncRequest message, int version)
{
long size = RepairJobDesc.serializer.serializedSize(message.desc, version);
size += 3 * inetAddressAndPortSerializer.serializedSize(message.initiator, version);
size += inetAddressAndPortSerializer.serializedSize(message.initiator, version);
size += inetAddressAndPortSerializer.serializedSize(message.src, version);
size += inetAddressAndPortSerializer.serializedSize(message.dst, version);
size += TypeSizes.sizeof(message.ranges.size());
for (Range<Token> range : message.ranges)
size += AbstractBounds.tokenSerializer.serializedSize(range, version);