Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
docker desktop on windows,
2 node server cluster with Community Edition 7.0.1 build 6102 running in a linux container
-
1
Description
The first UpsertAsync after a node becomes unavailable sometimes fails immediately with RequestCanceledException
- Steps to reproduce:
- Set up 2 node cluster.
- call UpsertAsync with a long timeout (should succeed immediately)
- make one of the CB nodes unavailable (I am doing this by stopping one of the CB containers)
- all UpsertAsync with a long timeout (should succeed immediately or later depending on which CB node it writes to)
- make the CB node available again (I am starting the container )
- the above UpsertAsync should soon succeed if it was waiting
- repeat
Most of the time UpsertAsync will work as expected, but sometimes it will fail immediately with RequestCanceledException
Call stack:
at Couchbase.Core.ClusterNode.ExecuteOp(Func`4 sender, IOperation op, Object state, CancellationTokenPair tokenPair)
at Couchbase.CouchbaseBucket.SendAsync(IOperation op, CancellationTokenPair tokenPair)
at Couchbase.Core.Retry.RetryOrchestrator.RetryAsync(BucketBase bucket, IOperation operation, CancellationTokenPair tokenPair)
at Couchbase.KeyValue.CouchbaseCollection.UpsertAsync[T](String id, T content, UpsertOptions options)
at NewClientLibTest.Program.Main(String[] args) in C:\source\CBTests\NewClientLibTest\Program.cs:line 133