Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
None
-
1
-
SDK06: FIT, PS, CXX
Description
Root Issue:
The SDK was not using the correct OpCodes for Replace/Remove operations when the given path is empty ("").
The value of the operation was also being written (or was dedicated a section of the packet) for OpCode.Delete when it should not have (i.e OpCode.Delete is used for Remove Specs with an empty path, instead of OpCode.SubDelete).
These tests are failing:
- removeFullDocAndSetSystemXattr
- replaceFullDocument
Both fail with:
Expected successful KV mutation result but got exception {
couchbase {
name: "InvalidArgumentException"
type: SDK_INVALID_ARGUMENT_EXCEPTION
serialized: "Couchbase.Core.Exceptions.InvalidArgumentException: Exception of type \'Couchbase.Core.Exceptions.InvalidArgumentException\' was thrown.\n at Couchbase.Core.Retry.RetryOrchestrator.RetryAsync(BucketBase bucket, IOperation operation, CancellationTokenPair tokenPair) in transactions-fit-performer/performers/dotnet/couchbase-net-client/src/Couchbase/Core/Retry/RetryOrchestrator.cs:line 334\n at Couchbase.KeyValue.CouchbaseCollection.MutateInAsync(String id, IEnumerable`1 specs, MutateInOptions options) in transactions-fit-performer/performers/dotnet/couchbase-net-client/src/Couchbase/KeyValue/CouchbaseCollection.cs:line 912\n at Couchbase.Transactions.FitPerformer.ClusterBucketScopeCollectionCommandExecutor.HandleCollectionLevelCommand(Command op, ClusterConnection connection, Result result) in transactions-fit-performer/performers/dotnet/Couchbase.Transactions.FitPerformer/Workload/ClusterBucketScopeCollectionCommandExecutor.cs:line 170\n at Couchbase.Transactions.FitPerformer.ClusterBucketScopeCollectionCommandExecutor.RunCommand(Command op, ClusterConnection connection, Result result, ConcurrentDictionary`2 spans, String runId, Action`1 consumer, StreamOwner streamOwner, Counters counters) in transactions-fit-performer/performers/dotnet/Couchbase.Transactions.FitPerformer/Workload/ClusterBucketScopeCollectionCommandExecutor.cs:line 62\n at Couchbase.Transactions.FitPerformer.SdkCommandExecutor.ExecuteCommand(Command op, ClusterConnection connection) in transactions-fit-performer/performers/dotnet/Couchbase.Transactions.FitPerformer/Workload/SdkCommandExecutor.cs:line 175\n at Couchbase.Transactions.FitPerformer.SdkCommandExecutor.RunCommand(Command command, Counters counters, ClusterConnection connection, Action`1 consumer, String runId, StreamOwner streamOwner, ConcurrentDictionary`2 spans) in transactions-fit-performer/performers/dotnet/Couchbase.Transactions.FitPerformer/Workload/SdkCommandExecutor.cs:line 42\n----------------------Context Info--------------------------\n
\n"
}
}