libdatadog update to b10b1d46#3983
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f826cc728b
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| @@ -1 +1 @@ | |||
| Subproject commit 6760faaeeda1cfcf634410105f93cf7149265592 | |||
| Subproject commit c79d783f79f4a2d1e637906f3323600c6e2b5b17 | |||
There was a problem hiding this comment.
Regenerate the sidecar FFI signature
This libdatadog bump changes ddog_sidecar_session_set_config by inserting retry_interval_milliseconds after flush_interval_milliseconds, but the checked-in components-rs/sidecar.h and the call in ext/sidecar.c still use the old argument list. Because C compiles against the stale header, this will not be caught at compile time; at runtime the new Rust FFI function will read every argument after the flush interval in the wrong slot, so normal sidecar startup can misconfigure intervals/sizes and eventually interpret non-pointer values as strings or callbacks. Please regenerate/update the header and pass the new retry interval at the call site as part of this bump.
Useful? React with 👍 / 👎.
| AssignmentReason::Static => REASON_STATIC, | ||
| AssignmentReason::TargetingMatch => REASON_TARGETING_MATCH, | ||
| AssignmentReason::Split => REASON_SPLIT, | ||
| AssignmentReason::Default => REASON_DEFAULT, |
There was a problem hiding this comment.
Handle invalid flag configs as defaults
The new libdatadog revision also adds EvaluationError::FlagConfigurationInvalid, which get_assignment can return for a requested flag whose per-flag config is invalid/unsupported; upstream FFE FFI maps that case to DEFAULT with no error so callers get their supplied default. This wrapper only added the new assignment reason, while the error match below still sends the new error through _ => (ERROR_GENERAL, REASON_ERROR), so those flags will now surface as evaluation errors instead of default evaluations. Please add an explicit arm for the new error variant.
Useful? React with 👍 / 👎.
|
Benchmarks [ tracer ]Benchmark execution time: 2026-06-19 13:49:15 Comparing candidate commit 155c2a9 in PR branch Found 3 performance improvements and 0 performance regressions! Performance is the same for 191 metrics, 0 unstable metrics.
|
b26baf8 to
f6df517
Compare
1ebeb95 to
c8f0703
Compare
Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/119877674 Full CI result: ❌ 17 job(s) failed
c111448 to
bde0d0e
Compare
Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/119878822 Full CI result: ❌ 197 job(s) failed
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Summary
Automated update of the libdatadog submodule to the latest HEAD.
$LIBDATADOG_PINNED_SHAb10b1d46577e95e057bd2b310641f965e6167d58Full CI result: ❌ 197 job(s) failed
CI pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/119878822
libdatadog Integration Report
libdatadog SHA: b10b1d46577e95e057bd2b310641f965e6167d58
Analysis date: 2026-06-19
Overall status
Build & test summary
All 197 failed jobs across the tracer, appsec, profiler, shared, and package
sub-pipelines share a single root cause: a Rust compilation error in our
components-rs/telemetry.rs. Every failing job is a downstream consequence —the extension (
ddtrace.so/libdatadog_php.a) never links, so all the test,coverage, pecl, windows, and asan jobs that depend on a built extension fail in
turn.
Concretely:
(
error[E0308]atcomponents-rs/telemetry.rs:325, "due to 1 previouserror"). amd64, arm64, musl, and windows all show it identically.
tests, appsec extension/integration tests, pecl tests, benchmarks) consume the
artifact produced by the broken build and fail because it was never produced.
No second, independent compilation error was reported in any trace — fixing this
one call site should unblock the whole pipeline.
Non-trivial changes made
components-rs/telemetry.rsOneWayShmReader::newchanged signature in libdatadog. This is from the breakingcommit
7370f1488 refactor(shm)!: Extract one_way_shared_memory to IPC and prepare libdd-remote-config for python (#2121), which split the reader'sconstruction into two constructors:
new(handle: MappedMem<T>, extra: D)— now takes a non-optional, alreadymapped segment and installs no opener. A reader built this way stays inert
until a handle is supplied.
new_with_opener(handle: Option<MappedMem<T>>, extra: D, opener)— takes anoptional handle plus a re-opener used to (re)map the segment lazily when the
handle is absent. This is the behaviour the old
new(Option, extra)providedfor named segments.
Our telemetry shm-cache reader opens a named segment by path (the segment is
created/updated by the sidecar at an arbitrary later time), so it relies on the
lazy-reopen behaviour. The fix mirrors libdatadog's own usage for the analogous
named-segment reader (
datadog-sidecar/src/service/agent_info.rs:191):shm_pathis theCStringreturned bypath_for_telemetry, matching theopener signature
fn(&D) -> Option<MappedMem<T>>(here&CStringderefs to the&CStraccepted byopen_named_shm). Theuseimport path(
datadog_ipc::one_way_shared_memory::{open_named_shm, OneWayShmReader}) isunchanged and still resolves after the IPC extraction.
This preserves the original semantics (initial best-effort map, lazy reopen on
later reads) rather than the
Option::expectpanic the compiler suggested, whichwould crash if the sidecar had not yet created the segment.
Identified libdatadog issues
None identified. The signature change is an intentional, documented breaking
refactor with a clear migration path (
new_with_opener).Flaky / ignored failures
None. Every failure is explained by the single compilation error above; no
timing/race/flaky or unrelated infrastructure failures were observed in the
traces.
/cc @bwoebi