Uploaded image for project: 'Couchbase .NET client library'
  1. Couchbase .NET client library
  2. NCBC-3397

IOperation.Elapsed does not correctly count duration between retries

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 3.4.13
    • 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

          For Gerrit Dashboard: NCBC-3397
          # Subject Branch Project Status CR V

          Activity

            People

              emilien.bevierre Emilien Bevierre
              emilien.bevierre Emilien Bevierre
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty