Skip to content

Don't hold references to objects in telemetry pipeline #5582

Open

Description

@sl0thentr0py

Problem

A recurring problem in SDKs is that we hold references to userland objects throughout the event pipeline (scope apply, scrubbing) and sometimes that causes

  • data corruption (modify user state)
  • race conditions in concurrent flows

There is no real need for us to risk holding references since all we need is to collect data reliably and without locks and blocking user flow.

Some examples of this problem:

Decision

  • eventually once everything is on attributes API (including errors), we will make sure set_attribute doesn't hold direct references to userland state and reduce surface area of these races/data corruptions
    • this can be through a lazy delegation wrapper object as in my gist
    • or just pre serialization in set_attribute itself


This is a placeholder task to decide and investigate the references that the span first pipeline holds and try to clean that up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions