Note
This release adds experimental heap live profiling to the profiler. This is off by default. Enable it with the environment variable DD_PROFILING_EXPERIMENTAL_HEAP_LIVE_ENABLED =1 or INI setting datadog.profiling. experimental_heap_live_enabled =1.
Tracer
Fixed
- Fix
SpanStack::$activeunset corruption #3962 - Fix sandbox not saving/restoring
jit_trace_num#3964 - Fix
SpanStackstate corruption when tracing objects with deep clone operations #3976 - Fix
request_execbeing issued between requests #3939 - Fix Azure Functions instance name resolution DataDog/libdatadog#2077
- Fix remote config
tracing_sample_ratemissing/null deserialization DataDog/libdatadog#2102
Internal
- Fix crashtracker metadata: correctly distinguish JIT disabled vs opcache disabled, and correct system INI classification #3965
- Use libdatadog's CSS trace filter implementation, aligning filtering behavior with the agent #3986, DataDog/libdatadog#1985
- Add configurable sidecar connection retry interval #3977, DataDog/libdatadog#2106
- Emit
_dd.svc_srcspan tag per Service Override Source Attribution RFC #3948 - Fix duplicate span serialization in the sidecar DataDog/libdatadog#2107
Profiling
Added
- Add trampoline for frameless functions (FLF) to correctly capture timings on aarch64 and x86_64 #3595
- Add experimental heap-live profiling for memory leak detection, enabled via
DD_PROFILING_EXPERIMENTAL_HEAP_LIVE_ENABLED(requires allocation profiling to be active) #3623
Fixed
- Fix profiler crashes and hangs: stderr fd leak (
O_CLOEXECmissing) causing child processes to hang, NULL file dereference in timeline error observer on PHP 8.0, and async signal delivery to helper threads causing a segfault on ZTS builds #3364 - Fix macOS release builds for the profiler #3987
Internal
- Replace
lazy_staticwithstd::sync::LazyLockand optimizeSapi/RefCellExt#3990 - Simplify profiler name/version string constants to compile-time values #3998
AppSec
Changed
- Enable Rust helper by default for all PHP versions (can be disabled with
DD_APPSEC_HELPER_RUST_REDIRECTION=false) #3991