libdatadog update to d7980db6#4006
Conversation
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 91b5f2bade
ℹ️ 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 cd90e50a5b067cf77a3e06641d838bc4c6b62aba | |||
| Subproject commit c690b5e43ccdf5ff84566db4447d416ac8c48ea8 | |||
There was a problem hiding this comment.
Regenerate Cargo.lock for the new libdatadog versions
This bump points at a libdatadog revision that changes path package versions (libdd-common 4.2.0→5.0.0 and libdd-remote-config 0.1.0→1.0.0), but the parent Cargo.lock is unchanged and still records the old versions. I checked cargo build --help; --locked asserts the lockfile remains unchanged, so locked/reproducible builds from this commit will fail before compilation because Cargo must rewrite the lockfile for those path dependencies. Please regenerate and commit Cargo.lock with this submodule revision.
Useful? React with 👍 / 👎.
765df56 to
59f2b0d
Compare
c8bbc94 to
747c876
Compare
3904647 to
30b60d4
Compare
842f922 to
083afb6
Compare
Benchmarks [ tracer ]Benchmark execution time: 2026-07-12 07:35:42 Comparing candidate commit c75dcc1 in PR branch Found 0 performance improvements and 5 performance regressions! Performance is the same for 189 metrics, 0 unstable metrics.
|
36c88cf to
9e430a1
Compare
8af45ac to
a33197b
Compare
b412bda to
4015657
Compare
ef020cf to
115ca62
Compare
27525c1 to
2dc1602
Compare
0318611 to
c52a51b
Compare
c75dcc1 to
0e66da0
Compare
a3adbd2 to
a6992e1
Compare
33a2579 to
d043d5e
Compare
5d3f10e to
79d7358
Compare
Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/125440129 Full CI result: ❌ 1 job(s) failed
50873db to
75aaa2f
Compare
Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/125441773 Full CI result: ❌ 176 job(s) failed
Summary
Automated update of the libdatadog submodule to the latest HEAD.
$LIBDATADOG_PINNED_SHAd7980db6be51fe821f4547512bc51d67654b99a9Full CI result: ❌ 176 job(s) failed
CI pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/125441773
libdatadog Integration Report
libdatadog SHA: d7980db6be51fe821f4547512bc51d67654b99a9
Analysis date: 2026-07-17
Overall status
Build & test summary
All 176 failing jobs share a single root cause: the
datadog-phpcrate(
components-rs/) no longer compiled against the new libdatadog, so every jobthat builds the ddtrace extension failed downstream.
The failing job families were:
datadog-php)buildTracer-*compilesdatadog-phpdatadog-phpdatadog-php(tracer-release)Every captured compilation trace (
appsec_*,compile_extension_windows:*)ends with the same 4 rustc errors, all in
components-rs/:No test-level or non-compilation failures were present. Once
datadog-phpcompiles, all downstream C/PHP/appsec tests should build and run again.
Non-trivial changes made
1.
components-rs/remote_config.rs—TargetAPI changelibdatadog made
Target's fields private and changed the tag field types.The struct is now:
with a public constructor
Target::new(...)and gettersservice(),env(),app_version()(libdatadog commitseaf5ad066"hide Target inner properties"and
85ce322a1"Make Target fields available again").ddog_remote_configs_service_env_change: replaced the direct struct literal(which used private fields and passed
Vec<Tag>) withTarget::new(...).The incoming
&libdd_common_ffi::Vec<Tag>is converted to theVec<String>of"key:value"strings thatTarget::newdocuments itexpects, via
.iter().map(|t| t.to_string()).collect(). This iscontent-preserving: a
Tagstores its whole"key:value"string in asingle field and its
Display/to_string()emits it verbatim, so the newVec<String>holds exactly what the oldVec<Tag>did.ddog_send_debugger_diagnostics:t.service.as_str()→t.service()(the getter, matching the now-private field).
2.
components-rs/stats.rs—is_trace_rootbool →TrileanThe protobuf sync (
b02d45457"update protobufs to be in sync withdatadog-agent") changed
ClientGroupedStats.is_trace_root— and consequentlyFixedAggregationKey::is_trace_rootinlibdd-trace-stats— frombooltothe tri-state
pb::Trileanenum (NotSet/True/False).use libdd_trace_protobuf::pb::Trilean;.build_fixed_key:is_trace_root: span.is_trace_root(a PHP-suppliedbool) →if span.is_trace_root { Trilean::True } else { Trilean::False }.There is no
From<bool>impl forTrileanin libdatadog, so the mapping iswritten explicitly, mirroring libdatadog's own conversion in
aggregation.rs. Our FFI input structPhpSpanStats.is_trace_rootstays abool; only the value handed to libdatadog is converted.3.
components-rs/Cargo.toml— new dependencyTrileanlives inlibdd-trace-protobuf, which was not a direct dependency ofdatadog-php(only reachable transitively throughlibdd-trace-stats). Addedthe path dependency so the type can be named:
Identified libdatadog issues
None identified. All four breakages are intentional, breaking (
!) APIrefactors on the libdatadog side, each with a clear replacement API. No panics,
regressions, or missing-functionality problems were observed.
Flaky / ignored failures
None. Every failing job traces to the single
datadog-phpcompilation break;there were no timing/flaky failures and no failures unrelated to the libdatadog
update.
/cc @bwoebi