github DataDog/dd-trace-py v3.19.1

13 hours ago

Estimated end-of-life date, accurate to within three months: 08-2026
See the support level definitions for more information.

Deprecation Notes

  • Tornado:
    • Deprecated support for Tornado versions older than v6.1. Use Tornado v6.1 or later.
    • Deprecates programmatic tracing configuration via the ddtrace.contrib.tornado module. Configure tracing using environment variables and import ddtrace.auto instead.

Bug Fixes

  • AAP: This fix resolves an issue where the appsec layer was not compatible anymore with the lambda/serverless version of the tracer.

  • Code Security: Fixes critical memory safety issue in IAST when used with forked worker processes (MCP servers with Gunicorn and Uvicorn). Workers previously crashed with segmentation faults due to stale PyObject pointers in native taint maps after fork.

  • Dynamic instrumentation: fix issue with line probes matching the wrong source file when multiple source files from different Python path entries share the same name.

  • Exception replay: ensure exception information is captured when exceptions are raised by the GraphQL client library.

  • Lib-injection: do not inject into the gsutil tool

  • LLM Observability: Fixes an issue where the Google ADK integration would throw an AttributeError when trying to access the name or description attributes of a tool.

  • Profiling:

    • This fix resolves a critical issue where the Lock Profiler generated release samples for non-sampled lock acquires, resulting in inflated or negative (when integer overflows) lock hold times (e.g., "3.24k days per minute", "-970 days per minute"). This affected virtually all customers using sampling rates < 100% (which should be the majority).
    • This fix prevents a use-after-free crash from the memory profiler on Python version 3.10 and 3.11. The previous attempt to fix this bug itself had a bug, which this fix addresses.
    • Fixes a segmentation fault caused by accessing frame.f_locals while trying to retrieve class name of a PyFrameObject.
  • Tracing:

    • Fixed a potential IndexError in partial flush when the finished span counter was out of sync with actual finished spans.
    • DD_TRACE_PARTIAL_FLUSH_MIN_SPANS values less than 1 now default to 1 with a warning.

Don't miss a new dd-trace-py release

NewReleases is sending notifications on new releases.