Skip to content

Comments

feat(worker): Add trigger to worker trait#1602

Draft
VianneyRuhlmann wants to merge 11 commits intomainfrom
vianney/implement-shared-runtime
Draft

feat(worker): Add trigger to worker trait#1602
VianneyRuhlmann wants to merge 11 commits intomainfrom
vianney/implement-shared-runtime

Conversation

@VianneyRuhlmann
Copy link
Contributor

What does this PR do?

A brief description of the change being made with this pull request.

Motivation

What inspired you to submit this pull request?

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Describe here in detail how the change can be validated.

@pr-commenter
Copy link

pr-commenter bot commented Feb 18, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-02-20 16:30:36

Comparing candidate commit ff6448c in PR branch vianney/implement-shared-runtime with baseline commit 4d79e24 in branch main.

Found 2 performance improvements and 2 performance regressions! Performance is the same for 53 metrics, 2 unstable metrics.

scenario:benching serializing traces from their internal representation to msgpack

  • 🟥 execution_time [+818.785µs; +831.507µs] or [+5.865%; +5.956%]

scenario:credit_card/is_card_number_no_luhn/ 3782-8224-6310-005

  • 🟩 execution_time [-3.531µs; -3.336µs] or [-5.369%; -5.072%]
  • 🟩 throughput [+814283.525op/s; +864649.887op/s] or [+5.355%; +5.687%]

scenario:sql/obfuscate_sql_string

  • 🟥 execution_time [+4.272µs; +4.332µs] or [+4.972%; +5.041%]

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 ff6448c 1771603961 vianney/implement-shared-runtime
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.703µs 161.229µs ± 0.452µs 161.140µs ± 0.146µs 161.306µs 161.698µs 163.320µs 165.079µs 2.44% 4.509 29.628 0.28% 0.032µ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.167µs; 161.292µs] or [-0.039%; +0.039%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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/2597 execution_time 3.360ms 3.388ms ± 0.010ms 3.387ms ± 0.008ms 3.396ms 3.406ms 3.415ms 3.418ms 0.91% 0.374 -0.062 0.30% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [3.387ms; 3.390ms] or [-0.042%; +0.042%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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 89.933µs 90.241µs ± 0.126µs 90.231µs ± 0.051µs 90.283µs 90.368µs 90.545µs 91.549µs 1.46% 5.625 56.412 0.14% 0.009µ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 [90.223µs; 90.258µs] or [-0.019%; +0.019%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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.232µs 3.241µs ± 1.486µs 2.991µs ± 0.028µs 3.022µs 3.650µs 14.494µs 15.633µs 422.72% 7.328 55.069 45.73% 0.105µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [3.035µs; 3.447µs] or [-6.354%; +6.354%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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.028µs 186.424µs ± 0.296µs 186.371µs ± 0.132µs 186.513µs 186.876µs 187.703µs 187.809µs 0.77% 2.615 8.640 0.16% 0.021µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5324562.714op/s 5364126.873op/s ± 8474.522op/s 5365653.167op/s ± 3792.366op/s 5368824.124op/s 5372614.489op/s 5374844.064op/s 5375544.979op/s 0.18% -2.597 8.546 0.16% 599.239op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.786µs 17.909µs ± 0.053µs 17.906µs ± 0.038µs 17.945µs 17.999µs 18.045µs 18.073µs 0.93% 0.334 0.156 0.30% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 55332534.700op/s 55839839.364op/s ± 165289.176op/s 55848475.639op/s ± 120043.882op/s 55960465.874op/s 56077245.284op/s 56205600.400op/s 56222705.633op/s 0.67% -0.315 0.132 0.30% 11687.710op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 9.807µs 9.853µs ± 0.019µs 9.850µs ± 0.011µs 9.865µs 9.885µs 9.905µs 9.934µs 0.86% 0.762 1.428 0.19% 0.001µs 1 200
normalization/normalize_name/normalize_name/good throughput 100660776.994op/s 101493466.903op/s ± 194960.730op/s 101527996.392op/s ± 115862.009op/s 101615591.706op/s 101779899.134op/s 101865379.039op/s 101966800.537op/s 0.43% -0.745 1.381 0.19% 13785.805op/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.383µs; 186.465µs] or [-0.022%; +0.022%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5362952.385op/s; 5365301.360op/s] or [-0.022%; +0.022%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.901µs; 17.916µs] or [-0.041%; +0.041%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55816931.874op/s; 55862746.855op/s] or [-0.041%; +0.041%] None None None
normalization/normalize_name/normalize_name/good execution_time [9.850µs; 9.856µs] or [-0.027%; +0.027%] None None None
normalization/normalize_name/normalize_name/good throughput [101466447.221op/s; 101520486.585op/s] or [-0.027%; +0.027%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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 494.107µs 494.862µs ± 0.650µs 494.791µs ± 0.225µs 495.034µs 495.407µs 495.631µs 502.696µs 1.60% 8.812 103.801 0.13% 0.046µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1989273.835op/s 2020768.321op/s ± 2623.777op/s 2021053.766op/s ± 917.590op/s 2021862.569op/s 2023079.198op/s 2023548.429op/s 2023853.133op/s 0.14% -8.702 102.036 0.13% 185.529op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 371.187µs 371.863µs ± 0.266µs 371.847µs ± 0.162µs 372.023µs 372.320µs 372.455µs 372.859µs 0.27% 0.277 0.523 0.07% 0.019µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2681976.164op/s 2689163.111op/s ± 1924.707op/s 2689280.004op/s ± 1170.954op/s 2690412.717op/s 2692413.066op/s 2693359.177op/s 2694057.027op/s 0.18% -0.272 0.516 0.07% 136.097op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 167.493µs 167.934µs ± 0.422µs 167.875µs ± 0.123µs 168.023µs 168.251µs 168.692µs 171.921µs 2.41% 7.080 60.808 0.25% 0.030µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5816629.012op/s 5954755.182op/s ± 14694.382op/s 5956817.231op/s ± 4374.303op/s 5960506.932op/s 5966456.927op/s 5969343.531op/s 5970414.513op/s 0.23% -6.985 59.650 0.25% 1039.050op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.579µs 36.671µs ± 0.047µs 36.666µs ± 0.029µs 36.698µs 36.756µs 36.770µs 36.918µs 0.69% 1.093 3.171 0.13% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27086699.486op/s 27269656.479op/s ± 34960.808op/s 27272890.161op/s ± 21213.665op/s 27291947.398op/s 27318948.060op/s 27336473.936op/s 27338059.745op/s 0.24% -1.078 3.093 0.13% 2472.102op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.341µs 45.493µs ± 0.076µs 45.506µs ± 0.055µs 45.553µs 45.595µs 45.641µs 45.683µs 0.39% -0.266 -0.746 0.17% 0.005µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21889831.881op/s 21981321.144op/s ± 36514.181op/s 21974976.606op/s ± 26313.310op/s 22007811.809op/s 22049036.030op/s 22054780.802op/s 22055104.433op/s 0.36% 0.271 -0.746 0.17% 2581.943op/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 [494.772µs; 494.952µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2020404.691op/s; 2021131.952op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [371.826µs; 371.900µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2688896.365op/s; 2689429.857op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [167.876µs; 167.992µs] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5952718.682op/s; 5956791.682op/s] or [-0.034%; +0.034%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.664µs; 36.677µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27264811.248op/s; 27274501.711op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.483µs; 45.504µs] or [-0.023%; +0.023%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21976260.630op/s; 21986381.658op/s] or [-0.023%; +0.023%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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.894µs 3.913µs ± 0.003µs 3.912µs ± 0.001µs 3.914µs 3.917µs 3.919µs 3.919µs 0.16% -1.477 11.950 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 255179790.479op/s 255590157.522op/s ± 166555.330op/s 255596164.058op/s ± 82766.994op/s 255678682.790op/s 255812874.875op/s 255868752.121op/s 256785277.296op/s 0.47% 1.500 12.131 0.07% 11777.240op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 79.828µs 82.450µs ± 1.141µs 82.466µs ± 0.688µs 83.126µs 84.409µs 85.407µs 85.705µs 3.93% 0.224 -0.063 1.38% 0.081µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11667947.431op/s 12130931.498op/s ± 167426.020op/s 12126158.365op/s ± 101319.223op/s 12244333.801op/s 12415029.112op/s 12463674.283op/s 12526949.627op/s 3.31% -0.147 -0.130 1.38% 11838.807op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 71.464µs 72.306µs ± 0.533µs 72.347µs ± 0.377µs 72.632µs 73.167µs 73.573µs 73.922µs 2.18% 0.296 -0.359 0.74% 0.038µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13527755.402op/s 13830854.024op/s ± 101745.390op/s 13822199.693op/s ± 71683.548op/s 13917652.537op/s 13982822.214op/s 13990080.579op/s 13992989.009op/s 1.24% -0.263 -0.413 0.73% 7194.486op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.894µs 3.912µs ± 0.003µs 3.911µs ± 0.001µs 3.913µs 3.917µs 3.918µs 3.920µs 0.21% -0.972 12.005 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255116039.386op/s 255628100.035op/s ± 169083.094op/s 255657599.187op/s ± 78228.835op/s 255716135.693op/s 255809208.803op/s 255862050.743op/s 256827111.461op/s 0.46% 0.998 12.187 0.07% 11955.980op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 68.535µs 69.457µs ± 0.337µs 69.447µs ± 0.239µs 69.700µs 69.985µs 70.117µs 70.200µs 1.08% -0.276 -0.099 0.48% 0.024µs 1 200
credit_card/is_card_number/378282246310005 throughput 14245071.623op/s 14397808.611op/s ± 70051.740op/s 14399500.241op/s ± 49598.337op/s 14444004.974op/s 14527323.525op/s 14568617.565op/s 14591027.585op/s 1.33% 0.303 -0.071 0.49% 4953.406op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 45.414µs 45.731µs ± 0.118µs 45.741µs ± 0.085µs 45.816µs 45.911µs 45.935µs 45.975µs 0.51% -0.419 -0.313 0.26% 0.008µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21750718.295op/s 21866955.640op/s ± 56669.954op/s 21862231.906op/s ± 40457.230op/s 21904566.555op/s 21962055.105op/s 22011859.163op/s 22019409.053op/s 0.72% 0.431 -0.299 0.26% 4007.171op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.427µs 6.436µs ± 0.003µs 6.436µs ± 0.002µs 6.438µs 6.441µs 6.444µs 6.448µs 0.20% 0.574 1.051 0.05% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 155077308.984op/s 155377638.942op/s ± 79965.654op/s 155385967.301op/s ± 49144.733op/s 155434085.215op/s 155484202.933op/s 155546892.588op/s 155592607.458op/s 0.13% -0.570 1.043 0.05% 5654.426op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.893µs 3.912µs ± 0.002µs 3.912µs ± 0.001µs 3.913µs 3.916µs 3.918µs 3.920µs 0.19% -2.139 20.715 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255125475.802op/s 255598100.911op/s ± 160413.660op/s 255607201.667op/s ± 80383.530op/s 255687514.831op/s 255776406.052op/s 255848198.671op/s 256903386.127op/s 0.51% 2.173 21.019 0.06% 11342.959op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 60.091µs 62.336µs ± 0.702µs 62.396µs ± 0.515µs 62.832µs 63.520µs 63.780µs 63.966µs 2.52% -0.116 -0.359 1.12% 0.050µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15633364.031op/s 16044208.571op/s ± 180978.983op/s 16026735.843op/s ± 132369.275op/s 16166726.455op/s 16332804.156op/s 16413974.487op/s 16641341.695op/s 3.83% 0.172 -0.315 1.13% 12797.147op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 54.010µs 54.270µs ± 0.101µs 54.270µs ± 0.064µs 54.330µs 54.431µs 54.553µs 54.591µs 0.59% 0.109 0.493 0.18% 0.007µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18318003.310op/s 18426601.709op/s ± 34157.078op/s 18426425.129op/s ± 21734.620op/s 18448224.596op/s 18483761.019op/s 18505772.624op/s 18514980.471op/s 0.48% -0.095 0.480 0.18% 2415.270op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.893µs 3.913µs ± 0.003µs 3.912µs ± 0.001µs 3.914µs 3.918µs 3.921µs 3.923µs 0.26% -0.623 9.880 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254937787.004op/s 255586196.063op/s ± 194404.953op/s 255610485.208op/s ± 89356.188op/s 255685930.892op/s 255821794.200op/s 255896751.114op/s 256881887.878op/s 0.50% 0.649 10.032 0.08% 13746.506op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.211µs 50.435µs ± 0.130µs 50.437µs ± 0.081µs 50.511µs 50.618µs 50.875µs 50.965µs 1.05% 0.728 1.796 0.26% 0.009µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19621428.690op/s 19827469.438op/s ± 50855.748op/s 19826627.615op/s ± 31832.323op/s 19863699.685op/s 19902266.670op/s 19908882.976op/s 19916098.182op/s 0.45% -0.703 1.710 0.26% 3596.044op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 45.434µs 45.726µs ± 0.113µs 45.738µs ± 0.083µs 45.816µs 45.891µs 45.930µs 45.964µs 0.49% -0.309 -0.599 0.25% 0.008µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21756336.384op/s 21869513.731op/s ± 54238.350op/s 21863762.999op/s ± 39700.701op/s 21910099.001op/s 21965196.606op/s 21992535.154op/s 22009961.769op/s 0.67% 0.318 -0.591 0.25% 3835.230op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.428µs 6.435µs ± 0.003µs 6.435µs ± 0.002µs 6.437µs 6.442µs 6.444µs 6.445µs 0.16% 0.403 0.103 0.05% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 155150837.984op/s 155397267.492op/s ± 84479.292op/s 155405535.904op/s ± 53873.709op/s 155453008.520op/s 155531201.023op/s 155566713.537op/s 155579498.569op/s 0.11% -0.400 0.100 0.05% 5973.588op/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.913µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255567074.555op/s; 255613240.489op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [82.291µs; 82.608µs] or [-0.192%; +0.192%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12107727.861op/s; 12154135.134op/s] or [-0.191%; +0.191%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [72.232µs; 72.380µs] or [-0.102%; +0.102%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13816753.092op/s; 13844954.957op/s] or [-0.102%; +0.102%] None None None
credit_card/is_card_number/37828224631 execution_time [3.912µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255604666.745op/s; 255651533.326op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [69.410µs; 69.503µs] or [-0.067%; +0.067%] None None None
credit_card/is_card_number/378282246310005 throughput [14388100.114op/s; 14407517.109op/s] or [-0.067%; +0.067%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.715µs; 45.748µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [21859101.729op/s; 21874809.551op/s] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.435µs; 6.436µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/x371413321323331 throughput [155366556.471op/s; 155388721.412op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.912µs; 3.913µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255575869.121op/s; 255620332.702op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [62.238µs; 62.433µs] or [-0.156%; +0.156%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [16019126.624op/s; 16069290.517op/s] or [-0.156%; +0.156%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [54.256µs; 54.283µs] or [-0.026%; +0.026%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18421867.866op/s; 18431335.551op/s] or [-0.026%; +0.026%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255559253.406op/s; 255613138.720op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.417µs; 50.453µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19820421.321op/s; 19834517.556op/s] or [-0.036%; +0.036%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.710µs; 45.742µs] or [-0.034%; +0.034%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [21861996.818op/s; 21877030.645op/s] or [-0.034%; +0.034%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.435µs; 6.436µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [155385559.474op/s; 155408975.509op/s] or [-0.008%; +0.008%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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.355µs 34.007µs ± 1.055µs 33.526µs ± 0.099µs 33.693µs 36.253µs 36.291µs 37.327µs 11.33% 1.688 0.990 3.09% 0.075µ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.861µs; 34.153µs] or [-0.430%; +0.430%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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.189ms 4.194ms ± 0.007ms 4.192ms ± 0.001ms 4.194ms 4.199ms 4.214ms 4.275ms 1.97% 8.470 90.749 0.17% 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.193ms; 4.195ms] or [-0.023%; +0.023%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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 249.310ns 257.288ns ± 9.734ns 253.261ns ± 2.176ns 258.476ns 278.767ns 291.446ns 291.988ns 15.29% 2.043 3.615 3.77% 0.688ns 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 [255.939ns; 258.637ns] or [-0.524%; +0.524%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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.732µs 25.443µs ± 9.561µs 18.282µs ± 0.475µs 34.036µs 42.449µs 52.462µs 66.046µs 261.27% 1.158 1.477 37.48% 0.676µ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.118µs; 26.768µs] or [-5.208%; +5.208%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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.965µs 5.044µs ± 0.044µs 5.029µs ± 0.021µs 5.080µs 5.116µs 5.121µs 5.125µs 1.91% 0.447 -1.087 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.038µs; 5.050µs] or [-0.120%; +0.120%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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 751.638µs 752.446µs ± 0.557µs 752.290µs ± 0.277µs 752.627µs 753.601µs 754.265µs 755.003µs 0.36% 1.848 4.419 0.07% 0.039µ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 [752.369µs; 752.523µs] or [-0.010%; +0.010%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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 14.730ms 14.786ms ± 0.029ms 14.784ms ± 0.016ms 14.798ms 14.834ms 14.892ms 14.897ms 0.76% 1.176 2.703 0.19% 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 [14.782ms; 14.790ms] or [-0.027%; +0.027%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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 48.431ms 48.804ms ± 1.267ms 48.646ms ± 0.093ms 48.748ms 48.889ms 51.930ms 62.739ms 28.97% 9.405 92.203 2.59% 0.090ms 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 [48.628ms; 48.980ms] or [-0.360%; +0.360%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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.464µs 2.485µs ± 0.015µs 2.483µs ± 0.011µs 2.493µs 2.513µs 2.528µs 2.552µs 2.79% 0.991 1.250 0.62% 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.483µs; 2.487µs] or [-0.086%; +0.086%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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 10.682ms 10.709ms ± 0.016ms 10.708ms ± 0.010ms 10.720ms 10.735ms 10.747ms 10.779ms 0.67% 0.941 2.168 0.15% 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 [10.707ms; 10.712ms] or [-0.021%; +0.021%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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 187.101ns 189.885ns ± 1.997ns 189.549ns ± 1.488ns 191.045ns 193.773ns 195.650ns 196.202ns 3.51% 0.848 0.285 1.05% 0.141ns 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 [189.608ns; 190.161ns] or [-0.146%; +0.146%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ff6448c 1771603961 vianney/implement-shared-runtime
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.216µs 146.193µs ± 1.585µs 145.890µs ± 0.512µs 146.547µs 147.944µs 152.014µs 161.287µs 10.55% 5.541 44.198 1.08% 0.112µ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 [145.973µs; 146.413µs] or [-0.150%; +0.150%] None None None

Baseline

Omitted due to size.

@github-actions
Copy link

📚 Documentation Check Results

⚠️ 1429 documentation warning(s) found

📦 libdd-common - 168 warning(s)

📦 libdd-data-pipeline - 783 warning(s)

📦 libdd-telemetry - 478 warning(s)


Updated: 2026-02-20 16:15:27 UTC | Commit: 5a16bc3 | missing-docs job results

@github-actions
Copy link

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/vianney/implement-shared-runtime

Summary by Rule

Rule Base Branch PR Branch Change
unwrap_used 16 16 No change (0%)
Total 16 16 No change (0%)

Annotation Counts by File

File Base Branch PR Branch Change
libdd-data-pipeline/src/stats_exporter.rs 1 1 No change (0%)
libdd-data-pipeline/src/trace_exporter/mod.rs 2 2 No change (0%)
libdd-telemetry/src/worker/mod.rs 13 13 No change (0%)

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 27 27 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-crashtracker 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 219 219 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.

@github-actions
Copy link

🔒 Cargo Deny Results

⚠️ 4 issue(s) found, showing only errors (advisories, bans, sources)

📦 libdd-common - 1 error(s)

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:12:1
   │
12 │ bytes 1.8.0 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2026-0007
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0007
   ├ In the unique reclaim path of `BytesMut::reserve`, the condition
     ```rs
     if v_capacity >= new_cap + offset
     ```
     uses an unchecked addition. When `new_cap + offset` overflows `usize` in release builds, this condition may incorrectly pass, causing `self.cap` to be set to a value that exceeds the actual allocated capacity. Subsequent APIs such as `spare_capacity_mut()` then trust this corrupted `cap` value and may create out-of-bounds slices, leading to UB.
     
     This behavior is observable in release builds (integer overflow wraps), whereas debug builds panic due to overflow checks.
     
     ## PoC
     
     ```rs
     use bytes::*;
     
     fn main() {
         let mut a = BytesMut::from(&b"hello world"[..]);
         let mut b = a.split_off(5);
     
         // Ensure b becomes the unique owner of the backing storage
         drop(a);
     
         // Trigger overflow in new_cap + offset inside reserve
         b.reserve(usize::MAX - 6);
     
         // This call relies on the corrupted cap and may cause UB & HBO
         b.put_u8(b'h');
     }
     ```
     
     # Workarounds
     
     Users of `BytesMut::reserve` are only affected if integer overflow checks are configured to wrap. When integer overflow is configured to panic, this issue does not apply.
   ├ Announcement: https://github.com/advisories/GHSA-434x-w66g-qw3r
   ├ Solution: Upgrade to >=1.11.1 (try `cargo update -p bytes`)
   ├ bytes v1.8.0
     ├── combine v4.6.7
     │   └── jni v0.21.1
     │       └── rustls-platform-verifier v0.6.2
     │           └── reqwest v0.13.1
     │               └── libdd-common v1.1.0
     ├── http v1.1.0
     │   ├── http-body v1.0.1
     │   │   ├── http-body-util v0.1.2
     │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   └── reqwest v0.13.1 (*)
     │   │   ├── hyper v1.6.0
     │   │   │   ├── hyper-rustls v0.27.3
     │   │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   │   └── reqwest v0.13.1 (*)
     │   │   │   ├── hyper-util v0.1.17
     │   │   │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   │   └── reqwest v0.13.1 (*)
     │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   └── reqwest v0.13.1 (*)
     │   │   ├── hyper-util v0.1.17 (*)
     │   │   ├── libdd-common v1.1.0 (*)
     │   │   ├── reqwest v0.13.1 (*)
     │   │   └── tower-http v0.6.8
     │   │       └── reqwest v0.13.1 (*)
     │   ├── http-body-util v0.1.2 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── libdd-common v1.1.0 (*)
     │   ├── multer v3.1.0
     │   │   └── libdd-common v1.1.0 (*)
     │   ├── reqwest v0.13.1 (*)
     │   └── tower-http v0.6.8 (*)
     ├── http-body v1.0.1 (*)
     ├── http-body-util v0.1.2 (*)
     ├── hyper v1.6.0 (*)
     ├── hyper-util v0.1.17 (*)
     ├── (dev) libdd-common v1.1.0 (*)
     ├── multer v3.1.0 (*)
     ├── reqwest v0.13.1 (*)
     ├── tokio v1.49.0
     │   ├── hickory-proto v0.25.2
     │   │   └── hickory-resolver v0.25.2
     │   │       └── reqwest v0.13.1 (*)
     │   ├── hickory-resolver v0.25.2 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── (dev) libdd-common v1.1.0 (*)
     │   ├── reqwest v0.13.1 (*)
     │   ├── tokio-rustls v0.26.0
     │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   ├── libdd-common v1.1.0 (*)
     │   │   └── reqwest v0.13.1 (*)
     │   └── tower v0.5.2
     │       ├── reqwest v0.13.1 (*)
     │       └── tower-http v0.6.8 (*)
     └── tower-http v0.6.8 (*)

advisories FAILED, bans ok, sources ok

📦 libdd-data-pipeline - 2 error(s)

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:50:1
   │
50 │ bytes 1.8.0 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2026-0007
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0007
   ├ In the unique reclaim path of `BytesMut::reserve`, the condition
     ```rs
     if v_capacity >= new_cap + offset
     ```
     uses an unchecked addition. When `new_cap + offset` overflows `usize` in release builds, this condition may incorrectly pass, causing `self.cap` to be set to a value that exceeds the actual allocated capacity. Subsequent APIs such as `spare_capacity_mut()` then trust this corrupted `cap` value and may create out-of-bounds slices, leading to UB.
     
     This behavior is observable in release builds (integer overflow wraps), whereas debug builds panic due to overflow checks.
     
     ## PoC
     
     ```rs
     use bytes::*;
     
     fn main() {
         let mut a = BytesMut::from(&b"hello world"[..]);
         let mut b = a.split_off(5);
     
         // Ensure b becomes the unique owner of the backing storage
         drop(a);
     
         // Trigger overflow in new_cap + offset inside reserve
         b.reserve(usize::MAX - 6);
     
         // This call relies on the corrupted cap and may cause UB & HBO
         b.put_u8(b'h');
     }
     ```
     
     # Workarounds
     
     Users of `BytesMut::reserve` are only affected if integer overflow checks are configured to wrap. When integer overflow is configured to panic, this issue does not apply.
   ├ Announcement: https://github.com/advisories/GHSA-434x-w66g-qw3r
   ├ Solution: Upgrade to >=1.11.1 (try `cargo update -p bytes`)
   ├ bytes v1.8.0
     ├── h2 v0.4.6
     │   └── hyper v1.6.0
     │       ├── httpmock v0.8.0-alpha.1
     │       │   ├── (dev) libdd-data-pipeline v1.0.0
     │       │   └── libdd-trace-utils v1.0.0
     │       │       ├── libdd-data-pipeline v1.0.0 (*)
     │       │       ├── libdd-trace-stats v1.0.0
     │       │       │   └── libdd-data-pipeline v1.0.0 (*)
     │       │       └── (dev) libdd-trace-utils v1.0.0 (*)
     │       ├── hyper-rustls v0.27.3
     │       │   └── libdd-common v1.1.0
     │       │       ├── libdd-data-pipeline v1.0.0 (*)
     │       │       ├── libdd-dogstatsd-client v1.0.0
     │       │       │   └── libdd-data-pipeline v1.0.0 (*)
     │       │       ├── libdd-telemetry v2.0.0
     │       │       │   └── libdd-data-pipeline v1.0.0 (*)
     │       │       └── libdd-trace-utils v1.0.0 (*)
     │       ├── hyper-util v0.1.17
     │       │   ├── httpmock v0.8.0-alpha.1 (*)
     │       │   ├── hyper-rustls v0.27.3 (*)
     │       │   └── libdd-common v1.1.0 (*)
     │       ├── libdd-common v1.1.0 (*)
     │       └── libdd-trace-utils v1.0.0 (*)
     ├── headers v0.4.0
     │   └── httpmock v0.8.0-alpha.1 (*)
     ├── http v1.1.0
     │   ├── h2 v0.4.6 (*)
     │   ├── headers v0.4.0 (*)
     │   ├── headers-core v0.3.0
     │   │   └── headers v0.4.0 (*)
     │   ├── http-body v1.0.1
     │   │   ├── http-body-util v0.1.2
     │   │   │   ├── httpmock v0.8.0-alpha.1 (*)
     │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   ├── libdd-data-pipeline v1.0.0 (*)
     │   │   │   ├── libdd-telemetry v2.0.0 (*)
     │   │   │   └── libdd-trace-utils v1.0.0 (*)
     │   │   ├── hyper v1.6.0 (*)
     │   │   ├── hyper-util v0.1.17 (*)
     │   │   ├── libdd-common v1.1.0 (*)
     │   │   └── libdd-trace-utils v1.0.0 (*)
     │   ├── http-body-util v0.1.2 (*)
     │   ├── httpmock v0.8.0-alpha.1 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── libdd-common v1.1.0 (*)
     │   ├── libdd-data-pipeline v1.0.0 (*)
     │   ├── libdd-dogstatsd-client v1.0.0 (*)
     │   ├── libdd-telemetry v2.0.0 (*)
     │   ├── libdd-trace-utils v1.0.0 (*)
     │   └── multer v3.1.0
     │       └── (dev) libdd-common v1.1.0 (*)
     ├── http-body v1.0.1 (*)
     ├── http-body-util v0.1.2 (*)
     ├── httpmock v0.8.0-alpha.1 (*)
     ├── hyper v1.6.0 (*)
     ├── hyper-util v0.1.17 (*)
     ├── (dev) libdd-common v1.1.0 (*)
     ├── libdd-data-pipeline v1.0.0 (*)
     ├── libdd-trace-utils v1.0.0 (*)
     ├── multer v3.1.0 (*)
     ├── prost v0.14.3
     │   ├── libdd-ddsketch v1.0.0
     │   │   ├── libdd-data-pipeline v1.0.0 (*)
     │   │   ├── libdd-telemetry v2.0.0 (*)
     │   │   └── libdd-trace-stats v1.0.0 (*)
     │   ├── libdd-trace-protobuf v1.0.0
     │   │   ├── libdd-data-pipeline v1.0.0 (*)
     │   │   ├── libdd-trace-normalization v1.0.0
     │   │   │   └── libdd-trace-utils v1.0.0 (*)
     │   │   ├── libdd-trace-stats v1.0.0 (*)
     │   │   └── libdd-trace-utils v1.0.0 (*)
     │   └── libdd-trace-utils v1.0.0 (*)
     ├── tokio v1.49.0
     │   ├── h2 v0.4.6 (*)
     │   ├── httpmock v0.8.0-alpha.1 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── (dev) libdd-common v1.1.0 (*)
     │   ├── (dev) libdd-data-pipeline v1.0.0 (*)
     │   ├── (dev) libdd-dogstatsd-client v1.0.0 (*)
     │   ├── (dev) libdd-telemetry v2.0.0 (*)
     │   ├── (dev) libdd-trace-protobuf v1.0.0 (*)
     │   ├── (dev) libdd-trace-utils v1.0.0 (*)
     │   ├── tokio-rustls v0.26.0
     │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   └── libdd-common v1.1.0 (*)
     │   └── tokio-util v0.7.12
     │       ├── h2 v0.4.6 (*)
     │       ├── libdd-data-pipeline v1.0.0 (*)
     │       └── libdd-telemetry v2.0.0 (*)
     └── tokio-util v0.7.12 (*)

error[vulnerability]: Denial of Service via Stack Exhaustion
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:291:1
    │
291 │ time 0.3.41 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
    │
    ├ ID: RUSTSEC-2026-0009
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0009
    ├ ## Impact
      
      When user-provided input is provided to any type that parses with the RFC 2822 format, a denial of
      service attack via stack exhaustion is possible. The attack relies on formally deprecated and
      rarely-used features that are part of the RFC 2822 format used in a malicious manner. Ordinary,
      non-malicious input will never encounter this scenario.
      
      ## Patches
      
      A limit to the depth of recursion was added in v0.3.47. From this version, an error will be returned
      rather than exhausting the stack.
      
      ## Workarounds
      
      Limiting the length of user input is the simplest way to avoid stack exhaustion, as the amount of
      the stack consumed would be at most a factor of the length of the input.
    ├ Announcement: https://github.com/time-rs/time/blob/main/CHANGELOG.md#0347-2026-02-05
    ├ Solution: Upgrade to >=0.3.47 (try `cargo update -p time`)
    ├ time v0.3.41
      └── tracing-appender v0.2.3
          └── libdd-log v1.0.0
              └── (dev) libdd-data-pipeline v1.0.0

advisories FAILED, bans ok, sources ok

📦 libdd-telemetry - 1 error(s)

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:12:1
   │
12 │ bytes 1.8.0 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2026-0007
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0007
   ├ In the unique reclaim path of `BytesMut::reserve`, the condition
     ```rs
     if v_capacity >= new_cap + offset
     ```
     uses an unchecked addition. When `new_cap + offset` overflows `usize` in release builds, this condition may incorrectly pass, causing `self.cap` to be set to a value that exceeds the actual allocated capacity. Subsequent APIs such as `spare_capacity_mut()` then trust this corrupted `cap` value and may create out-of-bounds slices, leading to UB.
     
     This behavior is observable in release builds (integer overflow wraps), whereas debug builds panic due to overflow checks.
     
     ## PoC
     
     ```rs
     use bytes::*;
     
     fn main() {
         let mut a = BytesMut::from(&b"hello world"[..]);
         let mut b = a.split_off(5);
     
         // Ensure b becomes the unique owner of the backing storage
         drop(a);
     
         // Trigger overflow in new_cap + offset inside reserve
         b.reserve(usize::MAX - 6);
     
         // This call relies on the corrupted cap and may cause UB & HBO
         b.put_u8(b'h');
     }
     ```
     
     # Workarounds
     
     Users of `BytesMut::reserve` are only affected if integer overflow checks are configured to wrap. When integer overflow is configured to panic, this issue does not apply.
   ├ Announcement: https://github.com/advisories/GHSA-434x-w66g-qw3r
   ├ Solution: Upgrade to >=1.11.1 (try `cargo update -p bytes`)
   ├ bytes v1.8.0
     ├── http v1.1.0
     │   ├── http-body v1.0.1
     │   │   ├── http-body-util v0.1.2
     │   │   │   ├── libdd-common v1.1.0
     │   │   │   │   └── libdd-telemetry v2.0.0
     │   │   │   └── libdd-telemetry v2.0.0 (*)
     │   │   ├── hyper v1.6.0
     │   │   │   ├── hyper-rustls v0.27.3
     │   │   │   │   └── libdd-common v1.1.0 (*)
     │   │   │   ├── hyper-util v0.1.17
     │   │   │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   │   │   └── libdd-common v1.1.0 (*)
     │   │   │   └── libdd-common v1.1.0 (*)
     │   │   ├── hyper-util v0.1.17 (*)
     │   │   └── libdd-common v1.1.0 (*)
     │   ├── http-body-util v0.1.2 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── libdd-common v1.1.0 (*)
     │   ├── libdd-telemetry v2.0.0 (*)
     │   └── multer v3.1.0
     │       └── (dev) libdd-common v1.1.0 (*)
     ├── http-body v1.0.1 (*)
     ├── http-body-util v0.1.2 (*)
     ├── hyper v1.6.0 (*)
     ├── hyper-util v0.1.17 (*)
     ├── (dev) libdd-common v1.1.0 (*)
     ├── multer v3.1.0 (*)
     ├── prost v0.14.3
     │   └── libdd-ddsketch v1.0.0
     │       └── libdd-telemetry v2.0.0 (*)
     ├── tokio v1.49.0
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── (dev) libdd-common v1.1.0 (*)
     │   ├── (dev) libdd-telemetry v2.0.0 (*)
     │   ├── tokio-rustls v0.26.0
     │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   └── libdd-common v1.1.0 (*)
     │   └── tokio-util v0.7.12
     │       └── libdd-telemetry v2.0.0 (*)
     └── tokio-util v0.7.12 (*)

advisories FAILED, bans ok, sources ok

Updated: 2026-02-20 16:18:17 UTC | Commit: 5a16bc3 | dependency-check job results

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.

1 participant