Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
None
-
5
-
SDK40
Description
What's happening
------------------
A special clause:
if (operation.Elapsed < operation.Timeout && !operation.IsCompleted) throw; |
is being hit with for KV operations when unsuccesful sometimes.
Problem
---------
The stopwatch field of IOperation/OperationBase is stopped early in HandleOperationCompleted(), called from AsyncStateBase.cs : SendResponseInternal().
Affected
---------
All KV operations
This issue can be re-created consistently with
- The "Test expected behaviour when a collection is dropped" Test in the RangeScan FIT Driver suite. A TaskCanceledException is thrown.
- Creating a collection, connecting to it with CollectionAsync(), deleting that connection, then attempting to perform a KV op on that collection.
Attachments
Issue Links
- has to be done after
-
NCBC-3416 Pathfind refactoring of Timeout and Cancellation in SDK
- Closed
For Gerrit Dashboard: NCBC-3397 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
198581,10 | NCBC-3397: IOperation.Elapsed does not correctly count duration between retries | master | couchbase-net-client | Status: MERGED | +2 | +1 |
198887,2 | NCBC-3397: System.Exception.TaskCanceledException is thrown when GetCid is involved in a failure | master | couchbase-net-client | Status: ABANDONED | 0 | 0 |