Skip to content

fix(crashtracker): fix vdso recognition during GOT patching on musl - #2379

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
bob/vdso-musl
Aug 20, 2026
Merged

gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
bob/vdso-musl

Conversation

@bwoebi

@bwoebi bwoebi commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Also adding extra sanity checks to fail closed rather than segfaulting with invalid dereferences, if offsets are unexpected.

Basically, the vdso can be named an empty string on musl.

Also adding extra sanity checks to fail closed rather than segfaulting with invalid dereferences, if offsets are unexpected.

Basically, the vdso can be named an empty string on musl.
@bwoebi
bwoebi requested review from a team as code owners August 19, 2026 17:20

@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: ff8f39af17

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread libdd-gotter/src/elf.rs Outdated
Comment thread libdd-gotter/src/elf.rs Outdated
@datadog-datadog-us1-prod

datadog-datadog-us1-prod Bot commented Aug 19, 2026 •

Copy link
Copy Markdown

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
• Patch Coverage: 92.31%
• Overall Coverage: 76.46% (+0.00%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 9bcb3aa | Docs | View more details | Give us feedback!

@bwoebi bwoebi changed the title Fix vdso recognition during GOT patching on musl fix(crashtracker): fix vdso recognition during GOT patching on musl Aug 19, 2026
@pr-commenter

pr-commenter Bot commented Aug 19, 2026 •

Copy link
Copy Markdown

Benchmarks

Comparison

Benchmark execution time: 2026-08-19 17:51:15

Comparing candidate commit 9bcb3aa in PR branch bob/vdso-musl with baseline commit 1765c7c in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1 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 ----------------------------------'

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 9bcb3aa 1787161286 bob/vdso-musl
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2644 execution_time 4.946ms 4.991ms ± 0.019ms 4.988ms ± 0.011ms 5.002ms 5.021ms 5.050ms 5.063ms 1.50% 0.768 1.247 0.38% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2644 execution_time [4.988ms; 4.994ms] or [-0.052%; +0.052%] None None None

Baseline

Baseline benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 1765c7c 1787160004 main
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2644 execution_time 4.963ms 5.007ms ± 0.031ms 4.999ms ± 0.014ms 5.018ms 5.076ms 5.087ms 5.093ms 1.88% 1.077 0.366 0.61% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2644 execution_time [5.003ms; 5.012ms] or [-0.085%; +0.085%] None None None

@bwoebi

bwoebi commented Aug 19, 2026

Copy link
Copy Markdown
Contributor Author

/merge

@gh-worker-devflow-routing-ef8351

gh-worker-devflow-routing-ef8351 Bot commented Aug 19, 2026 •

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-08-19 17:43:18 UTC ℹ️ Start processing command /merge


2026-08-19 17:43:24 UTC ℹ️ MergeQueue: Pull request is not mergeable yet

It will be processed automatically as soon as GitHub reports it as mergeable. View in MergeQueue UI.

  • Run /code blockers to see what is blocking it.
  • Run /remove to cancel it.

2026-08-19 18:18:21 UTC ℹ️ MergeQueue: merge request added to the queue

The expected merge time in main is approximately 53m (p90).


2026-08-19 19:08:18 UTC ❌ MergeQueue: The checks failed on this merge request

Tests failed on this commit 40dbb2f:

What to do next?

  • Investigate the failures and when ready, re-add your pull request to the queue!
  • If your PR checks are green, try to rebase/merge. It might be because the CI run is a bit old.
  • Any question, go check the FAQ.

@dd-octo-sts

dd-octo-sts Bot commented Aug 19, 2026 •

Copy link
Copy Markdown
Contributor

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 89.47 MB 89.48 MB +0% (+7.07 KB) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.20 MB 8.20 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.65 MB 100.66 MB +0% (+6.96 KB) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.06 MB 11.06 MB +0% (+360 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 26.62 MB 26.62 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 94.56 KB 94.56 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 180.69 MB 180.69 MB -0% (-8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 772.58 MB 772.58 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 8.72 MB 8.72 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 94.56 KB 94.56 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 25.64 MB 25.64 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 51.06 MB 51.06 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 23.20 MB 23.20 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 96.04 KB 96.04 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 185.60 MB 185.60 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 759.08 MB 759.08 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 6.74 MB 6.74 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 96.04 KB 96.04 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 27.58 MB 27.58 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 48.60 MB 48.60 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 79.74 MB 79.75 MB +.01% (+8.71 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 9.15 MB 9.15 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 95.38 MB 95.39 MB +0% (+8.58 KB) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.16 MB 11.16 MB +0% (+256 B) 👌

@bwoebi

bwoebi commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

/merge

@gh-worker-devflow-routing-ef8351

gh-worker-devflow-routing-ef8351 Bot commented Aug 20, 2026 •

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-08-20 11:42:30 UTC ℹ️ Start processing command /merge


2026-08-20 11:42:35 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in main is approximately 53m (p90).


2026-08-20 12:28:16 UTC ℹ️ MergeQueue: Readding this merge request to the queue because another merge request processed with yours failed. No action is needed from your side.


2026-08-20 13:13:21 UTC ℹ️ MergeQueue: This merge request was merged

@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot deleted the bob/vdso-musl branch August 20, 2026 13:13
hoolioh added a commit that referenced this pull request Aug 26, 2026
…ker, libdd-data-pipeline, li... (#2409)

# Release proposal for libdd-capabilities-impl, libdd-crashtracker,
libdd-data-pipeline, libdd-http-client, libdd-ipc, libdd-library-config,
libdd-otel-thread-ctx, libdd-remote-config, libdd-shared-runtime,
libdd-telemetry, libdd-tracer-flare and their dependencies

This PR contains version bumps based on public API changes and commits
since last release.

## libdd-gotter
**Next version:** `1.1.0`
**Semver bump:** `minor`
**Tag:** `libdd-gotter-v1.1.0`

### Commits

- fix(crashtracker): fix vdso recognition during GOT patching on musl
(#2379)

## libdd-ipc-macros
**Next version:** `1.0.0`
**Semver bump:** `major`
**Tag:** `libdd-ipc-macros-v1.0.0`

**Warning:** this is an initial release. Please verify that the version
and commits included are correct.


## libdd-trace-protobuf
**Next version:** `5.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-protobuf-v5.0.0`

### Commits

- chore(trace-protobuf)!: sync span.proto with datadog-agent (#2356)

## libdd-library-config
**Next version:** `4.0.0`
**Semver bump:** `major`
**Tag:** `libdd-library-config-v4.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.0 → ^5.0.0

### Commits

- fix(library-config): omit absent process context attributes (#2337)
- refactor: migrate to workspace dependencies, phase 4 (#2296)
- refactor: migrate to workspace dependencies, phase 3 (#2283)
- refactor: consolidate core dependencies at workspace level (phase 1)
(#2253)
- fix(library-config): update Linux process context (#2237)
- refactor(library-config): reorganize Linux process context (#2228)
- feat(library-config): otel process context reader (#2176)

## libdd-remote-config
**Next version:** `4.0.0`
**Semver bump:** `major`
**Tag:** `libdd-remote-config-v4.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0

### Commits

- feat(rc): add overrides for RC config/director roots (#2404)
- fix(rc): avoid depending on the crypto nodejs API for remote config
(#2407)
- fix(rc)!: fixup rc to be wasm compatible (#2393)
- feat: Revert vendoring of tuf-rust (#2365), use new crates.io package
(#2374)
- feat(agentless)!: vendor rust-tuf crate in libdatadog for release
(#2365)
- chore(rc)!: add DEBUG product (#2306)
- feat(remote-config)!: agentless RC fetcher (#2112)

## libdd-trace-utils
**Next version:** `11.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-utils-v11.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0

### Commits

- feat(compression): use zrip for wasm targets (#2386)
- fix(trace-utils)!: fix forward compatibility for string streaming
(#2295)

## libdd-tracer-flare
**Next version:** `2.0.0`
**Semver bump:** `major`
**Tag:** `libdd-tracer-flare-v2.0.0`

### ⚠️ major bump forced due to:

- `libdd-remote-config`: ^3.0.0 → ^4.0.0
- `libdd-trace-utils`: ^10.0.0 → ^11.0.0

### Commits

- feat(remote-config)!: agentless RC fetcher (#2112)

## libdd-crashtracker
**Next version:** `2.0.1`
**Semver bump:** `patch`
**Tag:** `libdd-crashtracker-v2.0.1`

### Commits

- fix(crashtracker): hold the collector connection open through
symbolization (#2384)
- fix(crashtracking): stop resolving thread symbols with libunwind in
the receiver (#2361)

## libdd-data-pipeline
**Next version:** `9.0.0`
**Semver bump:** `major`
**Tag:** `libdd-data-pipeline-v9.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0
- `libdd-trace-utils`: ^10.1.0 → ^11.0.0

### Commits

- feat(compression): use zrip for wasm targets (#2386)

## libdd-ipc
**Next version:** `1.0.0`
**Semver bump:** `major`
**Tag:** `libdd-ipc-v1.0.0`

**Warning:** this is an initial release. Please verify that the version
and commits included are correct.


## libdd-trace-normalization
**Next version:** `4.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-normalization-v4.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0


## libdd-trace-obfuscation
**Next version:** `7.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-obfuscation-v7.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0
- `libdd-trace-utils`: ^10.1.0 → ^11.0.0


## libdd-trace-stats
**Next version:** `8.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-stats-v8.0.0`

### ⚠️ major bump forced due to:

- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0
- `libdd-trace-utils`: ^10.1.0 → ^11.0.0

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: hoolioh <107922352+hoolioh@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants