v4.0.1
📦 datadog-sdkView on GitHub →
🐛 9 fixes🔧 8 symbols
Summary
This release focuses heavily on stability and security, addressing critical memory safety issues in IAST, resolving deadlocks upon forking, and fixing numerous bugs across profiling, AppSec, and LLM observability integrations.
🐛 Bug Fixes
- Fixed critical memory safety issue in IAST when used with forked worker processes (MCP servers with Gunicorn and Uvicorn) that caused segmentation faults due to stale PyObject pointers in native taint maps after fork.
- Resolved a potential deadlock when forking.
- Fixed an issue in LLM Observability where the Google ADK integration threw an AttributeError when accessing tool name or description attributes.
- Resolved an issue where the AppSec layer was incompatible with the lambda/serverless version of the tracer.
- Stopped injection into the `gsutil` tool.
- Improved reliability when parsing an empty span in profiling.
- Resolved a critical issue where the Lock Profiler generated incorrect lock hold times due to generating release samples for non-sampled lock acquires, affecting customers using sampling rates < 100%.
- Prevented a use-after-free crash in the memory profiler on Python 3.10 and 3.11 (addressing a bug in a previous fix attempt).
- Fixed a segmentation fault caused by accessing `frame.f_locals` while retrieving the class name of a `PyFrameObject`.
🔧 Affected Symbols
IASTGoogle ADK integrationAppSec layerlambda/serverless tracergsutilLock Profilermemory profilerPyFrameObject