Description
When the SDK constructs a mutation token it does so in this order
return couchbase::mutation_token{
|
tokenData.partitionUuid, tokenData.partitionId,
|
static_cast<uint16_t>(tokenData.sequenceNumber), tokenData.bucketName};
|
however the definition defines them in this order
explicit mutation_token(std::uint64_t partition_uuid,
|
std::uint64_t sequence_number,
|
std::uint16_t partition_id,
|
std::string bucket_name)
|
: partition_uuid_{ partition_uuid }
|
, sequence_number_{ sequence_number }
|
, partition_id_{ partition_id }
|
, bucket_name_{ std::move(bucket_name) }
|
This leads to the partition id and sequence number being swapped and any query using consistentWith timing out because the nonexistent mutation is never processed