Skip to content

chore(crashtracking): add integration test for errno preservation#1768

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits intomainfrom
gyuheon0h/PROF-14074-errno-preserve-int-test
Mar 20, 2026
Merged

chore(crashtracking): add integration test for errno preservation#1768
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits intomainfrom
gyuheon0h/PROF-14074-errno-preserve-int-test

Conversation

@gyuheon0h
Copy link
Copy Markdown
Contributor

@gyuheon0h gyuheon0h commented Mar 20, 2026

What does this PR do?

Adds an integration test that checks that errno is preserved before and after the crashtracker signal handler

Motivation

Its good practice to maintain errno, especially in the potential case chained handlers do something with it
This was done in chore(crashtracking): preserve errno for crashtracker. We should test this.

Additional Notes

There already exists integration tests that chain handlers. However, this test introduces file writing and verifying logic. I do not want to rip out the existing chained handler tests from the "simple test" harness. The added upside of this is that this lets us write a test to test a specific flow and keep each test atomic in its responsibility, instead of complicating the verification logic.

How to test the change?

Run the bin test

Copy link
Copy Markdown
Contributor Author

gyuheon0h commented Mar 20, 2026

@gyuheon0h gyuheon0h changed the title Add integration test for errno preservation chore(crashtracking): add integration test for errno preservation Mar 20, 2026
@github-actions
Copy link
Copy Markdown

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

Summary by Rule

Rule Base Branch PR Branch Change

Annotation Counts by File

File Base Branch PR Branch Change

Annotation Stats by Crate

Crate Base Branch PR Branch Change
clippy-annotation-reporter 5 5 No change (0%)
datadog-ffe-ffi 1 1 No change (0%)
datadog-ipc 28 28 No change (0%)
datadog-live-debugger 6 6 No change (0%)
datadog-live-debugger-ffi 10 10 No change (0%)
datadog-profiling-replayer 4 4 No change (0%)
datadog-remote-config 3 3 No change (0%)
datadog-sidecar 59 59 No change (0%)
libdd-common 10 10 No change (0%)
libdd-common-ffi 12 12 No change (0%)
libdd-data-pipeline 5 5 No change (0%)
libdd-ddsketch 2 2 No change (0%)
libdd-dogstatsd-client 1 1 No change (0%)
libdd-profiling 13 13 No change (0%)
libdd-telemetry 19 19 No change (0%)
libdd-tinybytes 4 4 No change (0%)
libdd-trace-normalization 2 2 No change (0%)
libdd-trace-obfuscation 9 9 No change (0%)
libdd-trace-utils 15 15 No change (0%)
Total 208 208 No change (0%)

About This Report

This report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality.

@gyuheon0h gyuheon0h marked this pull request as ready for review March 20, 2026 03:22
@gyuheon0h gyuheon0h requested review from a team as code owners March 20, 2026 03:22
@gyuheon0h gyuheon0h requested a review from danielsn March 20, 2026 03:22
@gyuheon0h gyuheon0h force-pushed the gyuheon0h/PROF-14074-errno-preserve-int-test branch from 7a9f5cd to 7bc18ff Compare March 20, 2026 03:23
@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Mar 20, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-03-20 13:07:13

Comparing candidate commit 0ec54c1 in PR branch gyuheon0h/PROF-14074-errno-preserve-int-test with baseline commit b5d393a in branch gyuheon0h/PROF-14074-preserve-ct-errno.

Found 0 performance improvements and 1 performance regressions! Performance is the same for 58 metrics, 2 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:receiver_entry_point/report/2598

  • 🟥 execution_time [+167.070µs; +175.998µs] or [+4.840%; +5.099%]

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_timestamped_x1000 execution_time 4.169ms 4.174ms ± 0.009ms 4.173ms ± 0.001ms 4.175ms 4.179ms 4.193ms 4.292ms 2.85% 11.638 149.639 0.21% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_timestamped_x1000 execution_time [4.173ms; 4.176ms] or [-0.030%; +0.030%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching deserializing traces from msgpack to their internal representation execution_time 49.224ms 49.462ms ± 1.044ms 49.315ms ± 0.033ms 49.356ms 49.486ms 53.478ms 60.906ms 23.50% 8.990 85.986 2.11% 0.074ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [49.317ms; 49.607ms] or [-0.293%; +0.293%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_trace/test_trace execution_time 238.630ns 248.586ns ± 12.813ns 242.530ns ± 2.405ns 250.794ns 283.470ns 286.423ns 288.291ns 18.87% 1.812 2.250 5.14% 0.906ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [246.810ns; 250.362ns] or [-0.714%; +0.714%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 33.423µs 34.036µs ± 1.019µs 33.575µs ± 0.042µs 33.641µs 36.190µs 36.225µs 38.045µs 13.31% 1.785 1.521 2.99% 0.072µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [33.895µs; 34.177µs] or [-0.415%; +0.415%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
concentrator/add_spans_to_concentrator execution_time 12.960ms 12.986ms ± 0.016ms 12.984ms ± 0.008ms 12.993ms 13.010ms 13.045ms 13.094ms 0.85% 2.388 11.421 0.13% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [12.984ms; 12.988ms] or [-0.017%; +0.017%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample2_frames_x1000 execution_time 725.170µs 726.365µs ± 0.617µs 726.263µs ± 0.355µs 726.668µs 727.569µs 728.075µs 729.089µs 0.39% 0.976 1.865 0.08% 0.044µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample2_frames_x1000 execution_time [726.280µs; 726.451µs] or [-0.012%; +0.012%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
ip_address/quantize_peer_ip_address_benchmark execution_time 4.963µs 5.054µs ± 0.044µs 5.047µs ± 0.031µs 5.087µs 5.132µs 5.135µs 5.137µs 1.77% 0.320 -0.920 0.87% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.048µs; 5.060µs] or [-0.121%; +0.121%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
tags/replace_trace_tags execution_time 2.380µs 2.401µs ± 0.021µs 2.395µs ± 0.008µs 2.406µs 2.461µs 2.468µs 2.471µs 3.16% 1.985 3.553 0.86% 0.001µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.399µs; 2.404µs] or [-0.119%; +0.119%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sdk_test_data/rules-based execution_time 144.818µs 146.629µs ± 1.921µs 146.282µs ± 0.558µs 146.953µs 148.230µs 154.775µs 166.293µs 13.68% 6.693 58.845 1.31% 0.136µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sdk_test_data/rules-based execution_time [146.363µs; 146.895µs] or [-0.182%; +0.182%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time 495.396µs 496.626µs ± 1.600µs 496.165µs ± 0.281µs 496.466µs 499.915µs 503.782µs 504.882µs 1.76% 3.179 10.621 0.32% 0.113µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1980662.571op/s 2013608.515op/s ± 6423.690op/s 2015459.470op/s ± 1142.429op/s 2016515.373op/s 2017730.470op/s 2018007.009op/s 2018586.245op/s 0.16% -3.155 10.444 0.32% 454.223op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 369.973µs 370.551µs ± 0.260µs 370.521µs ± 0.176µs 370.721µs 371.046µs 371.127µs 371.275µs 0.20% 0.308 -0.262 0.07% 0.018µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2693423.842op/s 2698687.363op/s ± 1894.360op/s 2698900.615op/s ± 1281.342op/s 2699993.904op/s 2701423.526op/s 2702774.131op/s 2702901.847op/s 0.15% -0.304 -0.264 0.07% 133.952op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 168.670µs 168.983µs ± 0.122µs 168.978µs ± 0.079µs 169.057µs 169.189µs 169.269µs 169.408µs 0.25% 0.302 0.349 0.07% 0.009µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5902892.747op/s 5917742.335op/s ± 4260.878op/s 5917941.547op/s ± 2760.628op/s 5920599.121op/s 5924465.272op/s 5926561.567op/s 5928725.960op/s 0.18% -0.297 0.343 0.07% 301.290op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.816µs 36.967µs ± 0.112µs 36.962µs ± 0.104µs 37.064µs 37.152µs 37.176µs 37.196µs 0.64% 0.253 -1.378 0.30% 0.008µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26884325.601op/s 27051140.251op/s ± 81885.388op/s 27055065.133op/s ± 76212.630op/s 27131296.344op/s 27150546.199op/s 27161329.449op/s 27162081.344op/s 0.40% -0.248 -1.384 0.30% 5790.171op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.211µs 46.302µs ± 0.057µs 46.298µs ± 0.040µs 46.337µs 46.411µs 46.462µs 46.527µs 0.49% 0.761 0.730 0.12% 0.004µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21493000.406op/s 21597165.038op/s ± 26762.806op/s 21599045.274op/s ± 18568.889op/s 21618084.475op/s 21634246.877op/s 21639251.704op/s 21639921.911op/s 0.19% -0.754 0.706 0.12% 1892.416op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [496.404µs; 496.848µs] or [-0.045%; +0.045%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2012718.253op/s; 2014498.776op/s] or [-0.044%; +0.044%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [370.515µs; 370.587µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2698424.823op/s; 2698949.903op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [168.967µs; 169.000µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5917151.818op/s; 5918332.851op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.952µs; 36.983µs] or [-0.042%; +0.042%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27039791.723op/s; 27062488.778op/s] or [-0.042%; +0.042%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.294µs; 46.310µs] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21593455.970op/s; 21600874.105op/s] or [-0.017%; +0.017%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
single_flag_killswitch/rules-based execution_time 190.802ns 193.125ns ± 2.013ns 192.882ns ± 1.406ns 194.022ns 197.419ns 198.840ns 201.195ns 4.31% 1.203 1.601 1.04% 0.142ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [192.846ns; 193.404ns] or [-0.144%; +0.144%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 17.297µs 25.419µs ± 9.741µs 17.970µs ± 0.429µs 34.005µs 43.586µs 44.067µs 68.567µs 281.56% 0.914 0.365 38.23% 0.689µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.069µs; 26.769µs] or [-5.311%; +5.311%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sql/obfuscate_sql_string execution_time 85.372µs 85.664µs ± 0.180µs 85.646µs ± 0.059µs 85.705µs 85.812µs 86.136µs 87.517µs 2.18% 6.212 57.469 0.21% 0.013µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [85.639µs; 85.689µs] or [-0.029%; +0.029%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 186.041µs 186.377µs ± 0.156µs 186.359µs ± 0.108µs 186.481µs 186.642µs 186.732µs 186.977µs 0.33% 0.483 0.206 0.08% 0.011µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5348250.674op/s 5365462.082op/s ± 4500.034op/s 5365978.156op/s ± 3122.309op/s 5368671.180op/s 5372640.106op/s 5373651.303op/s 5375152.738op/s 0.17% -0.478 0.196 0.08% 318.200op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.911µs 17.985µs ± 0.040µs 17.982µs ± 0.022µs 18.003µs 18.048µs 18.075µs 18.292µs 1.72% 2.523 16.494 0.22% 0.003µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 54669712.244op/s 55602417.957op/s ± 122360.437op/s 55610257.174op/s ± 68528.944op/s 55680511.830op/s 55758855.420op/s 55800070.137op/s 55830904.611op/s 0.40% -2.444 15.737 0.22% 8652.189op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.256µs 10.528µs ± 0.102µs 10.540µs ± 0.052µs 10.593µs 10.660µs 10.727µs 10.731µs 1.82% -0.858 0.538 0.97% 0.007µs 1 200
normalization/normalize_name/normalize_name/good throughput 93184210.359op/s 94990498.993op/s ± 932680.230op/s 94878638.074op/s ± 468542.773op/s 95297675.164op/s 97153930.798op/s 97390572.378op/s 97505052.535op/s 2.77% 0.910 0.616 0.98% 65950.452op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [186.356µs; 186.399µs] or [-0.012%; +0.012%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5364838.420op/s; 5366085.743op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.979µs; 17.990µs] or [-0.031%; +0.031%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55585459.977op/s; 55619375.937op/s] or [-0.030%; +0.030%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.514µs; 10.543µs] or [-0.135%; +0.135%] None None None
normalization/normalize_name/normalize_name/good throughput [94861238.483op/s; 95119759.502op/s] or [-0.136%; +0.136%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
credit_card/is_card_number/ execution_time 3.893µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.916µs 3.920µs 3.923µs 0.28% -0.687 9.079 0.08% 0.000µs 1 200
credit_card/is_card_number/ throughput 254916564.921op/s 255621693.549op/s ± 194298.020op/s 255630813.520op/s ± 104963.915op/s 255733079.082op/s 255864336.574op/s 255929925.690op/s 256894353.227op/s 0.49% 0.711 9.213 0.08% 13738.945op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 74.427µs 75.755µs ± 0.597µs 75.648µs ± 0.405µs 76.155µs 76.866µs 77.067µs 77.252µs 2.12% 0.357 -0.481 0.79% 0.042µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12944603.913op/s 13201310.514op/s ± 103726.161op/s 13219065.473op/s ± 70569.175op/s 13278541.853op/s 13365620.268op/s 13393479.287op/s 13436046.266op/s 1.64% -0.324 -0.500 0.78% 7334.547op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 68.365µs 68.528µs ± 0.094µs 68.525µs ± 0.062µs 68.579µs 68.668µs 68.738µs 69.028µs 0.73% 1.319 4.727 0.14% 0.007µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 14486906.516op/s 14592502.435op/s ± 19903.569op/s 14593273.966op/s ± 13193.998op/s 14607042.787op/s 14620690.474op/s 14624137.347op/s 14627366.340op/s 0.23% -1.299 4.612 0.14% 1407.395op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.893µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.918µs 3.920µs 3.924µs 0.27% -0.892 8.604 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254869848.857op/s 255541367.716op/s ± 197919.136op/s 255567210.857op/s ± 123802.369op/s 255669024.251op/s 255771191.534op/s 255810369.496op/s 256852747.907op/s 0.50% 0.915 8.754 0.08% 13994.996op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 64.620µs 64.804µs ± 0.130µs 64.779µs ± 0.081µs 64.872µs 65.028µs 65.258µs 65.311µs 0.82% 1.295 2.308 0.20% 0.009µs 1 200
credit_card/is_card_number/378282246310005 throughput 15311444.159op/s 15431106.439op/s ± 30950.832op/s 15437106.918op/s ± 19397.529op/s 15455644.618op/s 15466924.987op/s 15472686.515op/s 15475176.270op/s 0.25% -1.279 2.245 0.20% 2188.554op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 45.436µs 45.800µs ± 0.123µs 45.827µs ± 0.075µs 45.890µs 45.959µs 45.973µs 45.993µs 0.36% -0.897 0.291 0.27% 0.009µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21742238.319op/s 21834362.895op/s ± 58889.412op/s 21821224.294op/s ± 35502.388op/s 21865751.675op/s 21956190.282op/s 21999244.252op/s 22009021.689op/s 0.86% 0.909 0.319 0.27% 4164.110op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.427µs 6.435µs ± 0.004µs 6.434µs ± 0.002µs 6.438µs 6.443µs 6.448µs 6.454µs 0.31% 1.291 2.330 0.07% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 154939907.728op/s 155392520.730op/s ± 103713.019op/s 155414793.840op/s ± 56210.824op/s 155457295.882op/s 155518093.759op/s 155550630.184op/s 155591985.982op/s 0.11% -1.286 2.310 0.07% 7333.618op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.891µs 3.912µs ± 0.003µs 3.912µs ± 0.001µs 3.913µs 3.917µs 3.921µs 3.930µs 0.48% 0.018 15.427 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254428088.543op/s 255622755.011op/s ± 203366.862op/s 255640180.198op/s ± 85096.150op/s 255722887.199op/s 255836410.695op/s 255940978.674op/s 257000912.921op/s 0.53% 0.024 15.528 0.08% 14380.209op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 61.562µs 62.801µs ± 0.495µs 62.797µs ± 0.335µs 63.094µs 63.689µs 63.870µs 64.135µs 2.13% 0.158 -0.285 0.79% 0.035µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15592059.935op/s 15924186.996op/s ± 125502.221op/s 15924251.062op/s ± 85280.552op/s 16017147.871op/s 16114995.022op/s 16193412.057op/s 16243796.709op/s 2.01% -0.118 -0.294 0.79% 8874.347op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 54.022µs 54.232µs ± 0.081µs 54.228µs ± 0.061µs 54.291µs 54.370µs 54.410µs 54.450µs 0.41% 0.193 -0.320 0.15% 0.006µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18365595.066op/s 18439465.104op/s ± 27517.660op/s 18440619.362op/s ± 20777.857op/s 18459554.665op/s 18478894.701op/s 18498285.375op/s 18510808.461op/s 0.38% -0.186 -0.322 0.15% 1945.792op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.898µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.913µs 3.917µs 3.921µs 3.922µs 0.27% 0.374 3.063 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254966995.385op/s 255633011.511op/s ± 186794.356op/s 255651975.928op/s ± 102832.328op/s 255754757.094op/s 255860450.108op/s 255955603.174op/s 256516517.728op/s 0.34% -0.363 3.081 0.07% 13208.356op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.280µs 50.488µs ± 0.096µs 50.476µs ± 0.054µs 50.535µs 50.639µs 50.856µs 50.940µs 0.92% 1.212 3.476 0.19% 0.007µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19630911.247op/s 19806908.530op/s ± 37695.151op/s 19811455.671op/s ± 21204.501op/s 19831534.613op/s 19860340.489op/s 19871432.273op/s 19888633.646op/s 0.39% -1.190 3.376 0.19% 2665.450op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 45.375µs 45.789µs ± 0.114µs 45.811µs ± 0.081µs 45.883µs 45.928µs 45.956µs 46.005µs 0.42% -0.869 0.595 0.25% 0.008µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21736989.965op/s 21839348.102op/s ± 54701.952op/s 21828915.230op/s ± 38505.729op/s 21878738.801op/s 21929052.051op/s 21990262.468op/s 22038352.368op/s 0.96% 0.883 0.636 0.25% 3868.012op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.428µs 6.437µs ± 0.004µs 6.436µs ± 0.003µs 6.439µs 6.443µs 6.446µs 6.448µs 0.18% 0.171 -0.557 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 155093891.187op/s 155361307.918op/s ± 95702.810op/s 155365889.443op/s ± 73122.455op/s 155438043.463op/s 155507815.903op/s 155541509.669op/s 155575099.775op/s 0.13% -0.169 -0.559 0.06% 6767.211op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
credit_card/is_card_number/ execution_time [3.912µs; 3.912µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/ throughput [255594765.712op/s; 255648621.386op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [75.672µs; 75.837µs] or [-0.109%; +0.109%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [13186935.066op/s; 13215685.963op/s] or [-0.109%; +0.109%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [68.515µs; 68.541µs] or [-0.019%; +0.019%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14589743.992op/s; 14595260.879op/s] or [-0.019%; +0.019%] None None None
credit_card/is_card_number/37828224631 execution_time [3.913µs; 3.914µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/37828224631 throughput [255513938.027op/s; 255568797.405op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/378282246310005 execution_time [64.786µs; 64.822µs] or [-0.028%; +0.028%] None None None
credit_card/is_card_number/378282246310005 throughput [15426816.951op/s; 15435395.926op/s] or [-0.028%; +0.028%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.783µs; 45.817µs] or [-0.037%; +0.037%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [21826201.389op/s; 21842524.401op/s] or [-0.037%; +0.037%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.435µs; 6.436µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/x371413321323331 throughput [155378147.103op/s; 155406894.357op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.912µs; 3.912µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255594570.320op/s; 255650939.702op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [62.733µs; 62.870µs] or [-0.109%; +0.109%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15906793.595op/s; 15941580.397op/s] or [-0.109%; +0.109%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [54.220µs; 54.243µs] or [-0.021%; +0.021%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18435651.421op/s; 18443278.787op/s] or [-0.021%; +0.021%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.911µs; 3.912µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255607123.610op/s; 255658899.412op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.474µs; 50.501µs] or [-0.026%; +0.026%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19801684.345op/s; 19812132.716op/s] or [-0.026%; +0.026%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.773µs; 45.805µs] or [-0.035%; +0.035%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [21831766.937op/s; 21846929.266op/s] or [-0.035%; +0.035%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.436µs; 6.437µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [155348044.429op/s; 155374571.407op/s] or [-0.009%; +0.009%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_frames_x1000 execution_time 4.174ms 4.177ms ± 0.003ms 4.177ms ± 0.001ms 4.178ms 4.182ms 4.184ms 4.205ms 0.69% 5.063 43.722 0.07% 0.000ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_frames_x1000 execution_time [4.177ms; 4.178ms] or [-0.010%; +0.010%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 13.927ms 13.968ms ± 0.028ms 13.965ms ± 0.014ms 13.978ms 14.013ms 14.080ms 14.115ms 1.08% 2.261 8.459 0.20% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching serializing traces from their internal representation to msgpack execution_time [13.964ms; 13.971ms] or [-0.027%; +0.027%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
write only interface execution_time 1.208µs 3.182µs ± 1.429µs 3.013µs ± 0.023µs 3.033µs 3.362µs 13.818µs 15.208µs 404.74% 7.514 57.068 44.80% 0.101µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [2.984µs; 3.380µs] or [-6.224%; +6.224%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
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/2598 execution_time 3.588ms 3.623ms ± 0.024ms 3.617ms ± 0.008ms 3.627ms 3.681ms 3.710ms 3.758ms 3.89% 2.379 7.050 0.66% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2598 execution_time [3.620ms; 3.626ms] or [-0.092%; +0.092%] None None None

Group 20

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 0ec54c1 1774010968 gyuheon0h/PROF-14074-errno-preserve-int-test
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching string interning on wordpress profile execution_time 160.935µs 161.883µs ± 0.296µs 161.836µs ± 0.164µs 162.044µs 162.448µs 162.737µs 162.804µs 0.60% 0.518 0.721 0.18% 0.021µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [161.842µs; 161.925µs] or [-0.025%; +0.025%] None None None

Baseline

Omitted due to size.

@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts bot commented Mar 20, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 100.37 MB 100.38 MB +0% (+592 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.70 MB 8.70 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.28 MB 11.28 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 117.04 MB 117.04 MB +0% (+152 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 27.18 MB 27.18 MB +0% (+1.00 KB) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 77.50 KB 77.50 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 186.12 MB 186.12 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 917.27 MB 916.08 MB --.12% (-1.19 MB) 💪
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.94 MB 9.94 MB +0% (+1.00 KB) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 77.50 KB 77.50 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 24.78 MB 24.77 MB --.03% (-8.00 KB) 💪
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 51.47 MB 51.53 MB +.11% (+63.18 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 22.97 MB 23.00 MB +.09% (+23.50 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 78.71 KB 78.71 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 190.29 MB 190.38 MB +.04% (+96.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 900.94 MB 901.67 MB +.08% (+748.67 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.54 MB 7.54 MB --.01% (-1.50 KB) 💪
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 78.71 KB 78.71 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 26.52 MB 26.52 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 47.09 MB 47.15 MB +.12% (+62.64 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 87.59 MB 87.59 MB +0% (+1.22 KB) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.22 MB 10.22 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 109.92 MB 109.92 MB -0% (-152 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.97 MB 11.97 MB -0% (-8 B) 👌

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Mar 20, 2026

Codecov Report

❌ Patch coverage is 4.83871% with 59 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.20%. Comparing base (b5d393a) to head (0ec54c1).

Additional details and impacted files
@@                            Coverage Diff                             @@
##           gyuheon0h/PROF-14074-preserve-ct-errno    #1768      +/-   ##
==========================================================================
- Coverage                                   71.27%   71.20%   -0.08%     
==========================================================================
  Files                                         431      432       +1     
  Lines                                       64587    64654      +67     
==========================================================================
- Hits                                        46036    46035       -1     
- Misses                                      18551    18619      +68     
Components Coverage Δ
libdd-crashtracker 64.76% <ø> (-0.07%) ⬇️
libdd-crashtracker-ffi 34.09% <ø> (ø)
libdd-alloc 98.77% <ø> (ø)
libdd-data-pipeline 87.99% <ø> (ø)
libdd-data-pipeline-ffi 75.20% <ø> (ø)
libdd-common 79.87% <ø> (ø)
libdd-common-ffi 73.87% <ø> (ø)
libdd-telemetry 62.48% <ø> (ø)
libdd-telemetry-ffi 16.75% <ø> (ø)
libdd-dogstatsd-client 82.64% <ø> (ø)
datadog-ipc 80.29% <ø> (ø)
libdd-profiling 81.61% <ø> (ø)
libdd-profiling-ffi 64.94% <ø> (ø)
datadog-sidecar 31.67% <ø> (ø)
datdog-sidecar-ffi 9.01% <ø> (ø)
spawn-worker 54.69% <ø> (ø)
libdd-tinybytes 93.16% <ø> (ø)
libdd-trace-normalization 81.71% <ø> (ø)
libdd-trace-obfuscation 91.80% <ø> (ø)
libdd-trace-protobuf 68.25% <ø> (ø)
libdd-trace-utils 89.05% <ø> (ø)
datadog-tracer-flare 86.88% <ø> (ø)
libdd-log 74.69% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@gyuheon0h gyuheon0h marked this pull request as draft March 20, 2026 12:36
@gyuheon0h gyuheon0h marked this pull request as ready for review March 20, 2026 12:49
@gyuheon0h gyuheon0h force-pushed the gyuheon0h/PROF-14074-errno-preserve-int-test branch from 7bc18ff to 0ec54c1 Compare March 20, 2026 12:49
Copy link
Copy Markdown
Contributor

@gleocadie gleocadie left a comment

Choose a reason for hiding this comment

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

LGTM

gh-worker-dd-mergequeue-cf854d bot pushed a commit that referenced this pull request Mar 20, 2026
# What does this PR do?

saves errno prior to signal handling, and restores it before chaining

# Motivation

We save/restore errno on signal handling. This is good practice; although this is in crash context

# Additional Notes

using this crate: https://crates.io/crates/errno

Neat crate, cross platform, and compared to std libs errno utils:
```
This crate provides these extra features:
1. No heap allocations
2. Optional #![no_std] support
3. A set_errno function
```

# How to test the change?

None as a unit test. Kind of hard to test the main signal hander function as a unit test. I could have made a `with_errno_preserved` wrapper around the signal handling function and write a test for the wrapper, but I felt that doing so would be more complexity vs the value it brings. However, no strong opinions on this; happy to implement if a second opinion thinks it is a good idea.

There is a bin test in a following PR: [chore(crashtracking): add integration test for errno preservation](#1768)

Co-authored-by: gyuheon.oh <gyuheon.oh@datadoghq.com>
Base automatically changed from gyuheon0h/PROF-14074-preserve-ct-errno to main March 20, 2026 16:38
@gyuheon0h
Copy link
Copy Markdown
Contributor Author

/merge

@gh-worker-devflow-routing-ef8351
Copy link
Copy Markdown

gh-worker-devflow-routing-ef8351 bot commented Mar 20, 2026

View all feedbacks in Devflow UI.

2026-03-20 16:52:27 UTC ℹ️ Start processing command /merge


2026-03-20 16:52:31 UTC ℹ️ MergeQueue: pull request added to the queue

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


2026-03-20 17:34:09 UTC ℹ️ MergeQueue: This merge request was merged

@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot merged commit 0c25580 into main Mar 20, 2026
89 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot deleted the gyuheon0h/PROF-14074-errno-preserve-int-test branch March 20, 2026 17:34
bwoebi added a commit that referenced this pull request Mar 20, 2026
…-unprocessed

* 'main' of github.com:DataDog/libdatadog:
  chore(build): ekump/APMSP-2718 update aws-lc dependencies (#1751)
  chore(crashtracking): add integration test for errno preservation (#1768)
  chore(crashtracking): preserve errno for crashtracker (#1767)
  chore(examples): add compilation flags to prevent logic errors (#1766)
  feat(agents)!: retrieve container tags hash from /info endpoint (#1700)
  fix(ci): handle new crate addition in semver-check (#1769)
  fix(obfuscation/redis): fuzzer fixes [APMSP-2670] (#1694)
  fix(obfuscation/http)!: fuzzer fixes [APMSP-2670] (#1684)
  ci: add Datadog code coverage upload (#1718)
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.

3 participants