Skip to content

libdatadog update to 15899dfe - #4006

Merged
bwoebi merged 6 commits into
masterfrom
bot/libdatadog-latest
Jul 24, 2026
Merged

libdatadog update to 15899dfe#4006
bwoebi merged 6 commits into
masterfrom
bot/libdatadog-latest

Conversation

@dd-octo-sts

@dd-octo-sts dd-octo-sts Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Automated update of the libdatadog submodule to the latest HEAD.

SHA
Previous $LIBDATADOG_PINNED_SHA
New 15899dfe754d12186ce7db72f0ff41c1920d52ec

Full CI result: ❌ 248 job(s) failed
CI pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/dd-trace-php/-/pipelines/126697886


libdatadog Integration Report

libdatadog SHA: 15899dfe754d12186ce7db72f0ff41c1920d52ec
Analysis date: 2026-07-23

Overall status

⚠️ Adapted (API changes fixed)

All 248 failing jobs trace back to just two root causes introduced by this
libdatadog bump, both of which are ordinary API changes that have been adapted
in the dd-trace-php Rust sources. No libdatadog bugs and no flaky failures were
identified.

Build & test summary

Every one of the 248 persistent failures is a build/compile failure (the whole
CI never reached the test phase). They split into two groups:

  1. Manifest-parse failure (the mass failure — ~240 jobs).
    Profiler, shared/ZAI/tea, package (pecl + Windows), appsec-extension and
    most appsec-integration jobs die before compiling a single line, with:

    failed to parse manifest at `.../libdatadog/datadog-ffe/Cargo.toml`
    error inheriting `serde` from workspace root manifest's `workspace.dependencies.serde`
    `dependency.serde` was not found in `workspace.dependencies`
    

    libdatadog PR Do not emit a deprecated diagnostic for DD_LOGS_INJECTION #2253 "refactor: consolidate core dependencies at workspace
    level (phase 1)"
    moved serde (and anyhow, tokio, tracing) into
    libdatadog's [workspace.dependencies], so leaf crates such as
    datadog-ffe, libdd-remote-config, libdd-otel-thread-ctx, libdd-log
    now use serde = { workspace = true, ... }.

    dd-trace-php builds the tracer by running cargo build from components-rs
    (see compile_rust.sh), which makes the repo-root Cargo.toml the
    active workspace. When the many libdatadog crates are pulled in as path
    dependencies, their { workspace = true } inheritance is resolved against
    this root manifest (that is exactly why the root already mirrored
    arc-swap, hyper and hyper-util, per the comment in that file). The
    root was missing the four newly-consolidated deps, so manifest parsing
    failed for every build.

  2. Source-level API breakages (~2 dozen appsec jobs).
    The appsec integration build uses a separate build tree whose workspace
    already resolves serde, so it got past the manifest error and surfaced
    the real code incompatibilities. datadog-php (components-rs) failed with
    exactly 4 compiler errors (see below). rustc emits all type/resolution
    errors for a crate before aborting, so these 4 are the complete set for
    components-rs; the profiler crate could not be reached at compile stage
    because of failure (1), but static analysis (below) shows it does not touch
    any of the changed APIs.

After the changes described below, both root causes are resolved: the workspace
manifest parses, and every reported compiler error is addressed with the new
libdatadog APIs.

Non-trivial changes made

Cargo.toml (repo root)

Added the four dependencies libdatadog #2253 consolidated to workspace level, so
libdatadog path-dependency crates can resolve their { workspace = true }
inheritance against this manifest. Declarations mirror libdatadog's own
[workspace.dependencies] (version-only, default-features = false; each leaf
crate opts into the features it needs):

anyhow  = { version = "1.0",  default-features = false }
serde   = { version = "1.0",  default-features = false }
tokio   = { version = "1.36", default-features = false }
tracing = { version = "0.1",  default-features = false }

arc-swap, hyper and hyper-util were already present and are left
untouched. A comment now documents that this list must stay in sync with
libdatadog's workspace dependencies.

components-rs/remote_config.rs

libdatadog #2182 "hide Target inner properties" (partially reverted /
re-shaped by #2232) made Target's fields private and changed tags /
process_tags from Vec<Tag> to Vec<String> (already-formatted
"key:value" strings). A public constructor Target::new(...) and accessor
methods service() / env() / app_version() were added.

  • ddog_remote_configs_service_env_change: replaced the Target { … } struct
    literal with Target::new(…), converting the incoming
    &libdd_common_ffi::Vec<Tag> into Vec<String> via each Tag's Display
    impl (t.to_string()), which yields the expected "key:value" form.
  • ddog_debugger_diagnostics_* (service lookup): changed
    t.service.as_str() to the new accessor t.service() (which already returns
    &str).

components-rs/stats.rs

libdatadog #b02d45457 "update protobufs to be in sync with datadog-agent"
(and the trace-stats metric-tags work in #2170) changed
FixedAggregationKey::is_trace_root from bool to the three-valued
pb::Trilean.

  • Added use libdd_trace_protobuf::pb::Trilean;.
  • In build_fixed_key, map the PHP-side bool onto Trilean::True /
    Trilean::False (the PHP tracer only ever knows true/false, never
    NotSet), matching libdatadog's own internal conversion idiom in
    libdd-trace-stats/src/span_concentrator/aggregation.rs.
  • The second FixedAggregationKey construction (php_span_to_owned_input)
    copies the already-typed Trilean and needed no change.

components-rs/Cargo.toml

Added libdd-trace-protobuf = { path = "../libdatadog/libdd-trace-protobuf" }
so pb::Trilean can be named. It is not re-exported by libdd-trace-stats, and
it was already an in-tree transitive dependency, so no new package enters the
dependency graph / Cargo.lock.

Identified libdatadog issues

None identified. Every failure is an intentional, well-formed API change on the
libdatadog side (private Target fields + constructor, Vec<String> tags,
Trilean for is_trace_root, workspace-level dependency consolidation), each
with a clear new API to migrate to.

Flaky / ignored failures

None. All 248 failures are deterministic build failures with a common root
cause; none mention timing, sleep, races, or unrelated infrastructure.

Verification notes

  • I cannot run cargo/make in this environment, so the changes are reasoned
    from the error traces and the new libdatadog sources.
  • The 4 components-rs errors are the complete set (rustc reports all
    resolution/type errors for a crate before aborting); each is addressed.
  • The profiler crate was masked by the manifest error and never compiled, but
    it does not reference Target, is_trace_root, FixedAggregationKey, the
    changed stats/trace-exporter/telemetry APIs, or any specific
    libdd-library-config-ffi symbol (it only glob-re-exports it), so it is
    expected to build once the workspace manifest resolves.
  • No new crates are introduced, so Cargo.lock should not require manual
    edits.

/cc @bwoebi

@dd-octo-sts
dd-octo-sts Bot requested review from a team as code owners June 23, 2026 06:18
@dd-octo-sts
dd-octo-sts Bot requested review from greghuels and leoromanovsky and removed request for a team June 23, 2026 06:18
@datadog-prod-us1-3

datadog-prod-us1-3 Bot commented Jun 23, 2026

Copy link
Copy Markdown

Pipelines  Tests

Unblock PR with BitsAI

⚠️ Warnings

🚦 30 Pipeline jobs failed

DataDog/apm-reliability/dd-trace-php | PHP Language Tests: [8.0]   View in Datadog   GitLab

🧪 2 Tests failed

All test failures are known flaky.

❄️ Known flaky: ext/standard/tests/streams/opendir-003.phpt (opendir() with &#39;ftps://&#39; stream.) from PHP.ext.standard.tests.streams   View in Datadog
002&#43; error:0A000415:SSL routines::sslv3 alert certificate expired in /usr/local/src/php/ext/ftp/tests/server.inc on line 115
003&#43; 
005&#43; error:0A000086:SSL routines::certificate verify failed in /usr/local/src/php/ext/standard/tests/streams/opendir-003.php on line 10
006&#43; SSLv23 handshake failed.
007&#43; 
002-  in %s on line %d
     bool(false)

Not introduced in this PR.

❄️ Known flaky: ext/standard/tests/streams/opendir-004.phpt (opendir() with &#39;ftps://&#39; stream.) from PHP.ext.standard.tests.streams   View in Datadog
002&#43; error:0A000086:SSL routines::certificate verify failed in /usr/local/src/php/ext/standard/tests/streams/opendir-004.php on line 10
003&#43; 
005&#43; error:0A000415:SSL routines::sslv3 alert certificate expired in /usr/local/src/php/ext/ftp/tests/server.inc on line 115
001- resource(%d) of type (stream)
002- string(5) &#34;file1&#34;
003- string(5) &#34;file1&#34;
004- string(3) &#34;fil&#34;
005- string(4) &#34;b0rk&#34;
006&#43; SSLv23 handshake failed.
007&#43; 
...

Not introduced in this PR.

DataDog/apm-reliability/dd-trace-php | PHP Language Tests: [8.1]   View in Datadog   GitLab

🧪 2 Tests failed

All test failures are known flaky.

❄️ Known flaky: ext/standard/tests/streams/opendir-003.phpt (opendir() with &#39;ftps://&#39; stream.) from php.ext.standard.tests.streams   View in Datadog
002&#43; error:0A000415:SSL routines::sslv3 alert certificate expired in /usr/local/src/php/ext/ftp/tests/server.inc on line 81
003&#43; 
005&#43; error:0A000086:SSL routines::certificate verify failed in /usr/local/src/php/ext/standard/tests/streams/opendir-003.php on line 10
006&#43; SSLv23 handshake failed.
007&#43; 
002-  in %s on line %d
     bool(false)

Not introduced in this PR.

❄️ Known flaky: ext/standard/tests/streams/opendir-004.phpt (opendir() with &#39;ftps://&#39; stream.) from php.ext.standard.tests.streams   View in Datadog
002&#43; error:0A000415:SSL routines::sslv3 alert certificate expired in /usr/local/src/php/ext/ftp/tests/server.inc on line 81
003&#43; 
005&#43; error:0A000086:SSL routines::certificate verify failed in /usr/local/src/php/ext/standard/tests/streams/opendir-004.php on line 10
001- resource(%d) of type (stream)
002- string(5) &#34;file1&#34;
003- string(5) &#34;file1&#34;
004- string(3) &#34;fil&#34;
005- string(4) &#34;b0rk&#34;
006&#43; SSLv23 handshake failed.
007&#43; 
...

Not introduced in this PR.

DataDog/apm-reliability/dd-trace-php | appsec integration tests: [test8.4-release]   View in Datadog   GitLab

🧪 1 Test failed

All test failures are known flaky.

❄️ Known flaky: extended heartbeat re-emits configuration, dependencies and integrations() from com.datadog.appsec.php.integration.TelemetryExtendedHeartbeatTests   View in Datadog
java.lang.AssertionError: phpredis not emitted via app-started/app-integrations-change; saw: []. Expression: (phpredis in flushed). Values: flushed = []

java.lang.AssertionError: phpredis not emitted via app-started/app-integrations-change; saw: []. Expression: (phpredis in flushed). Values: flushed = []
	at org.codehaus.groovy.runtime.InvokerHelper.createAssertError(InvokerHelper.java:416)
	at com.datadog.appsec.php.integration.TelemetryExtendedHeartbeatTests.extended heartbeat re-emits configuration, dependencies and integrations(TelemetryExtendedHeartbeatTests.groovy:70)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

Not introduced in this PR.

View all 30 failed jobs.

ℹ️ Info

No other issues found (see more)

❄️ No new flaky tests detected

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 60.63% (-0.02%)

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 2d5858d | Docs | Datadog PR Page | Give us feedback!

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread libdatadog Outdated
@@ -1 +1 @@
Subproject commit cd90e50a5b067cf77a3e06641d838bc4c6b62aba
Subproject commit c690b5e43ccdf5ff84566db4447d416ac8c48ea8

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch from 765df56 to 59f2b0d Compare June 24, 2026 06:15
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to c690b5e4 libdatadog update to 4e8e6cc8 Jun 24, 2026
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 4e8e6cc8 libdatadog update to 4b79b7ed Jun 25, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch 2 times, most recently from c8bbc94 to 747c876 Compare June 27, 2026 04:59
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 4b79b7ed libdatadog update to 53e20b54 Jun 27, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch 3 times, most recently from 3904647 to 30b60d4 Compare June 30, 2026 07:28
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 53e20b54 libdatadog update to e6469314 Jun 30, 2026
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to e6469314 libdatadog update to 36305534 Jul 1, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch from 842f922 to 083afb6 Compare July 1, 2026 02:48
@dd-octo-sts
dd-octo-sts Bot requested review from a team as code owners July 1, 2026 02:48
@pr-commenter

pr-commenter Bot commented Jul 1, 2026

Copy link
Copy Markdown

Benchmarks [ tracer ]

Benchmark execution time: 2026-07-24 17:03:33

Comparing candidate commit b562541 in PR branch bot/libdatadog-latest with baseline commit f068c9e in branch master.

Found 0 performance improvements and 1 performance regressions! Performance is the same for 193 metrics, 0 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:ContextPropagationBench/benchExtractHeaders64Bit

  • 🟥 execution_time [+37.727ns; +84.273ns] or [+3.173%; +7.088%]

@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 36305534 libdatadog update to 3ba54312 Jul 2, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch from 36c88cf to 9e430a1 Compare July 2, 2026 02:52
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 3ba54312 libdatadog update to 4b66bd62 Jul 3, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch from 8af45ac to a33197b Compare July 3, 2026 02:47
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 4b66bd62 libdatadog update to d7b2aad3 Jul 4, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch 3 times, most recently from b412bda to 4015657 Compare July 6, 2026 03:02
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to a10f667e libdatadog update to 407f8f23 Jul 16, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch from 33a2579 to d043d5e Compare July 16, 2026 02:48
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 407f8f23 libdatadog update to 0c6e2a5d Jul 17, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch from 5d3f10e to 79d7358 Compare July 17, 2026 02:47
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 0c6e2a5d libdatadog update to d7980db6 Jul 18, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch 3 times, most recently from 93923bf to ba5f02f Compare July 20, 2026 03:05
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to d7980db6 libdatadog update to fb65e461 Jul 21, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch 2 times, most recently from bf528c4 to 6e830cd Compare July 22, 2026 02:32
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to fb65e461 libdatadog update to 63ecad56 Jul 22, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch from 73d120c to bb0ca7e Compare July 23, 2026 02:47
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 63ecad56 libdatadog update to 0c78ffcf Jul 23, 2026
@dd-octo-sts
dd-octo-sts Bot force-pushed the bot/libdatadog-latest branch from 5b60136 to 30f5f0f Compare July 24, 2026 02:54
@dd-octo-sts dd-octo-sts Bot changed the title libdatadog update to 0c78ffcf libdatadog update to 15899dfe Jul 24, 2026
github-actions Bot and others added 4 commits July 24, 2026 17:30
Update for libdatadog changes.

Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Help distinguishing debug logs by url for parallel requests

Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
@bwoebi
bwoebi force-pushed the bot/libdatadog-latest branch from 9becf41 to b562541 Compare July 24, 2026 15:43
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
@bwoebi
bwoebi requested a review from a team as a code owner July 24, 2026 17:50
@bwoebi
bwoebi force-pushed the bot/libdatadog-latest branch from 58bb861 to 2d5858d Compare July 24, 2026 18:09
@bwoebi
bwoebi merged commit acd5a0d into master Jul 24, 2026
1820 of 1913 checks passed
@bwoebi
bwoebi deleted the bot/libdatadog-latest branch July 24, 2026 18:33
@github-actions github-actions Bot added this to the 1.24.0 milestone Jul 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant