Description
During a temporary failure, operations appear to be retried but they are actually not:
snipped from debug log:
2020-09-10 15:42:26.6455|DEBUG|ClusterNode|CB: Current state is Closed.
2020-09-10 15:42:26.6455|DEBUG|ClusterNode|CB: Sending 5116 to [::1]:11210.
2020-09-10 15:42:26.6455|DEBUG|ClusterNode|Executing op MultiLookup on [::1]:11210 with key XYZ and opaque 5116.
2020-09-10 15:42:26.6455|DEBUG|ClusterNode|Server [::1]:11210 returned TemporaryFailure for op MultiLookup with key XYZ and opaque 5116.
How to reproduce:
Run CB in docker.
Start a test client that can read a document with e.g. key XYZ and a custom timeout longer than 2.5 seconds. Note that timeouts were ignored before NCBC-2557 was merged
restart docker image
read document during CB warmup
In RetryOrchestrator.RetryAsync, a call to operation.Reset() seems to be missing in the if (action.DurationValue.HasValue) branch
Attachments
For Gerrit Dashboard: NCBC-2652 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
136816,3 | NCBC-2652: Operations gets stuck in retry loop until timeout | master | couchbase-net-client | Status: MERGED | +2 | +1 |