Repository navigation
libdatadog update to 24680da3 - #4276
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
❌ ErrorsYour PR has failed checks. Please review the issues below and take necessary action before merging. 🚦 3 Pipeline jobs failed
ℹ️ InfoNo other issues found (see more)🧪 All tests passed 🎯 Code Coverage (details) Useful? React with 👍 / 👎 This comment will be updated automatically if new data arrives.🔗 Commit SHA: ef104aa | Docs | View more details | Give us feedback! |
Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/142936654 Full CI result: ❌ 1 job(s) failed
290b327 to
8efea25
Compare
Automated update by CI pipeline https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/142939162 Full CI result: ❌ 143 job(s) failed
libdatadog#1770 moved the std-only library-config FFI functions into a separate module, so they now land in a different codegen unit of libdatadog_php.a. zai_config_stable_file_minit() only resolves them via dlsym, so nothing referenced that archive member and the linker dropped it; RESOLVE_SYMBOL then failed and stable config was silently disabled. Reference every dlsym-resolved symbol from the existing dummy function. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Benchmarks [ tracer ]Benchmark execution time: 2026-10-07 19:18:49 Comparing candidate commit ef104aa in PR branch Found 1 performance improvements and 0 performance regressions! Performance is the same for 192 metrics, 1 unstable metrics.
|
Summary
Automated update of the libdatadog submodule to the latest HEAD.
$LIBDATADOG_PINNED_SHA24680da3827160070786f97173b44ded23b39d75Full CI result: ❌ 143 job(s) failed
CI pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/142939162
libdatadog Integration Report
libdatadog SHA: 24680da3827160070786f97173b44ded23b39d75
Analysis date: 2026-10-06
Overall status
The cargo-related failures have one root cause, and it is now fixed in
Cargo.toml. One group of failures (ZAI tests, 46 jobs) has no log artifactsand cannot be explained by this libdatadog update. It needs a manual look; see
below.
Build & test summary
143 persistent failures across sub-pipelines (tracer, profiler, appsec,
package, shared). Every failure trace in
tmp/artifacts/traces/(appsecintegration tests, helper-rust build/test, profiling tests) stops at the same
cargo manifest-resolution error, before any Rust code is compiled:
Root cause: libdatadog crates (
edition.workspace,foo.workspace = true)are built as path dependencies of our root workspace. They inherit from
dd-trace-php's
[workspace.dependencies], which mirrors libdatadog's copy byhand. libdatadog commit 7717de8e3 (
feat(library-config)!: make libdd-library-config no_std compatible, #1770) added two workspacedependencies,
libc_allocandyaml_serde(the replacement forserde_yaml). Our mirror didn't have them.Since cargo fails while it parses the manifests, every job that runs cargo on
this workspace fails the same way:
That error was hiding everything after it, so I also checked the five
libdatadog commits since the previous pin (
70e7c0bc5) for API breaks thatwould show up once the manifest resolves (details below).
Non-trivial changes made
Cargo.toml[workspace.dependencies]synced withlibdatadog/Cargo.toml:libc_alloc = { version = "1.0", default-features = false }(used by
libdd-library-config-ffi's optionalstandalonefeature;cargo still has to resolve it)
yaml_serde = { version = "0.10.7", default-features = false }(a required dependency of
libdd-library-config)kernel32-sysandwinapi, which libdatadog dropped from itslist. No crate in our workspace inherits them.
A sorted diff of the dependency names in the two
[workspace.dependencies]tables now comes back empty.libdd-common-ffinow requestsfeatures = ["std"]. In Collect client ip only when customer indicates to do so #1770,libdd-common-ffibecameno_stdunless the newstdfeature (on bydefault) is enabled. Without it,
Error,Handle,Option,Result,MutSlice,string::*,timespec::*and their deps are compiled out. Weuse
default-features = falseand re-exportlibdd_common_ffi::*fromcomponents-rs/lib.rs, so we needstd. Every libdatadog FFI crate wasupdated the same way (
default-features = false, features = ["std"]).Feature unification through e.g.
datadog-sidecar-ffiwould probably turnit on anyway, but we shouldn't rely on that.
libdd-library-config-ffinow requestsfeatures = ["std"]. This oneis required. The same commit moved
ddog_library_configurator_get,ddog_library_configurator_with_detect_process_info,ddog_library_config_source_to_string,ddog_library_config_{fleet,local}_stable_config_pathandddog_library_config_dropinto a#[cfg(feature = "std")] mod std_api(
libdatadog/libdd-library-config-ffi/src/lib.rs:159).stdis a defaultfeature, but we disable defaults and nothing else in the graph enables
libdd-library-config-ffi/std. Without this change those symbols wouldsilently disappear from the build, and the C code that calls them
(
zend_abstract_interface/config/config_stable_file.c, profiler bindings)would break at link or load time.
Other checks (no change needed)
ddog_library_*function, and of theLibraryConfigandProcessInfostructs, are the same as at
70e7c0bc5. The checked-incomponents-rs/library-config.his still valid.libdd-library-configdirect dependency (otel-thread-ctx,process-context-reader): both features now implystd, sootel_process_ctx,tracer_metadataandProcessContextSelfReader(usedby
components-rs/lib.rsandprofiling/src/process_context/linux.rs) arestill exported.
StatsComputationObfuscationConfig.sql_obfuscation_mode→obfuscation_config: SqlConfig,AgentObfuscationConfig.sql_obfuscation_modeis now an
Option): we don't reference these.components-rsonly usesAgentInfoStructandFixedAggregationKey, which didn't change.crashtracking upload priority): additive or internal only.
Cargo.lockis tracked, but CI doesn't build with--locked, so cargoadds
yaml_serdeandlibc_allocto the lockfile on the next build. Icouldn't regenerate it here because no Rust toolchain is available.
Not verified: I couldn't run cargo in this environment, so these changes
are reasoned from the error messages and the libdatadog sources. The next CI
run is the real check.
Identified libdatadog issues
None identified. Requiring consumers to mirror
[workspace.dependencies]byhand is a known cost of building libdatadog crates as members of our
workspace, not a libdatadog bug.
Flaky / ignored failures
[shared-trigger]: unexplained, need manual inspection. No traces werecollected for these jobs (all just report
script_failure). The ZAI build(
.gitlab/generate-shared.php,zend_abstract_interface/CMakeLists.txt)runs CMake only and never invokes cargo.
config_stable_file.cresolves theddog_library_*symbols at runtime via function pointers, and uses thechecked-in
components-rs/library-config.h, which this update doesn'tchange. So the manifest error above cannot be their cause, and I have no
evidence that ties them to the libdatadog update. They were not failing on
the previous automated update (that pipeline reported 1 failed job). Check
the job logs in pipeline 142939162. Possible causes are an infrastructure
problem or a failing upstream
Build & Test Teaartifact./cc @bwoebi