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