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

Config requests are using ChildOf relationships on finished spans

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 2.7.0
    • 2.6.2
    • None
    • None
    • 1

    Description

      Reported by user rwkarg on Gitter:

      Some feedback on OpenTracing behavior in the 2.6.2 client: We have ASP.NET services that have a span around service bootstrapping (including the Couchbase client). That span gets finished, but any async work started in that span (including the periodic polling of the Config operation) gets added to that finished, initial span.
      *initial trace
      This results in a single trace that is forever getting Config operations added to it. It ultimately stems from the behavior of StartActive that will add a ChildOf relationship to an existing ActiveSpan even if that span has been finished (I don't know if that is considered correct or incorrect OpenTracing behavior)
      To address this in our own code, we create a span around execution of periodic tasks that IgnoreActiveSpan since we know that this is triggered from a timer, not as the child of some higher level request processing.
      Would that be an approach that could get applied to the periodic Config operations performed by the client?
      

      Spans should not use the ChildOf relationship if the ActiveSpan has finished, although ScopeManager.ActiveSpan should not reference a Span that has finished.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            mike.goldsmith Michael Goldsmith
            mike.goldsmith Michael Goldsmith
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty