Skip to content

chore(deps): update lading-payload to latest and upgrade millstone rand 0.9 → 0.10#1609

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit into
mainfrom
thieman/DADP-58-lading-upgrade
May 7, 2026
Merged

chore(deps): update lading-payload to latest and upgrade millstone rand 0.9 → 0.10#1609
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit into
mainfrom
thieman/DADP-58-lading-upgrade

Conversation

@thieman
Copy link
Copy Markdown
Contributor

@thieman thieman commented May 7, 2026

Human Summary

Bumps our version of lading up to bring in the upgrade to rand from DataDog/lading#1865

Subsequent PRs will bump lading further to bring in some updates I'm working on (see DataDog/lading#1871), just wanted to get this yak out of the way independently

Summary

  • Updates lading-payload git rev to 01ef8d70, picking up the rand 0.9 → 0.10 upgrade in lading (#1865) and other upstream improvements
  • Updates millstone's pinned rand = "0.9" to the workspace rand = "0.10" to match lading-payload's expectation
  • Fixes two corpus.rs call sites that broke with the new lading API: DogStatsD::new now takes &Config instead of Config, and the internal generator functions are de-genericized from R: Rng to concrete StdRng

The rand 0.9 → 0.10 upgrade in rand_core changes how Rng is implemented: rand_core 0.10 only blanket-implements Rng for types satisfying TryRng<Error=Infallible> via DerefMut, which concrete RNGs satisfy through direct impls in the rand crate. Mixing a rand 0.9 StdRng with a rand 0.10 trait boundary produced opaque DerefMut errors. The fix is to use the same rand version throughout.

Test plan

  • cargo check --workspace passes
  • cargo clippy -p millstone passes

🤖 Generated with Claude Code

…nd 0.9 → 0.10

Updates the lading-payload git rev to 01ef8d70, which includes the rand 0.9 → 0.10
upgrade in lading (#1865) and several other upstream improvements.

Millstone's private rand 0.9 dependency is updated to the workspace rand 0.10
to match lading-payload's expectation. The rand 0.9 → 0.10 API changed how
RNGs are passed across crate boundaries: rand_core 0.10 only implements Rng for
types satisfying TryRng<Error=Infallible>, which concrete rand 0.10 RNGs do via
direct impls. Using a mismatched rand 0.9 StdRng with a rand 0.10 trait boundary
produces opaque DerefMut errors at the call site.

Two call-site fixes in corpus.rs:
- DogStatsD::new now takes &Config (was Config) — add &
- generate_payloads and generate_payloads_inner de-genericized from R: Rng to
  concrete StdRng, which is the only type ever used; this sidesteps the generic
  R: Rng → &mut R: rand_core::Rng propagation issue

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented May 7, 2026

Binary Size Analysis (Agent Data Plane)

Target: d04bde8 (baseline) vs 85638fd (comparison) diff
Analysis Type: Stripped binaries (debug symbols excluded)
Baseline Size: 37.55 MiB
Comparison Size: 37.55 MiB
Size Change: +0 B (+0.00%)
Pass/Fail Threshold: +5%
Result: PASSED ✅

Changes by Module

Module File Size Symbols
anon.4f8fd67d74ae1f1600187cfeb0121be9.1.llvm.15410878768428557996 -130 B 1
anon.4f8fd67d74ae1f1600187cfeb0121be9.1.llvm.9654349716448276079 +129 B 1
anon.4f8fd67d74ae1f1600187cfeb0121be9.4.llvm.15410878768428557996 -115 B 1
anon.4f8fd67d74ae1f1600187cfeb0121be9.4.llvm.9654349716448276079 +114 B 1
anon.4f8fd67d74ae1f1600187cfeb0121be9.3.llvm.15410878768428557996 -109 B 1
anon.4f8fd67d74ae1f1600187cfeb0121be9.3.llvm.9654349716448276079 +108 B 1
anon.4f8fd67d74ae1f1600187cfeb0121be9.0.llvm.15410878768428557996 -97 B 1
anon.4f8fd67d74ae1f1600187cfeb0121be9.0.llvm.9654349716448276079 +96 B 1
anon.4f8fd67d74ae1f1600187cfeb0121be9.2.llvm.15410878768428557996 -95 B 1
anon.4f8fd67d74ae1f1600187cfeb0121be9.2.llvm.9654349716448276079 +94 B 1
[Unmapped] +5 B 1

Detailed Symbol Changes

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW]    +129  [NEW]     +40    anon.4f8fd67d74ae1f1600187cfeb0121be9.1.llvm.9654349716448276079
  [NEW]    +114  [NEW]     +25    anon.4f8fd67d74ae1f1600187cfeb0121be9.4.llvm.9654349716448276079
  [NEW]    +108  [NEW]     +19    anon.4f8fd67d74ae1f1600187cfeb0121be9.3.llvm.9654349716448276079
  [NEW]     +96  [NEW]      +7    anon.4f8fd67d74ae1f1600187cfeb0121be9.0.llvm.9654349716448276079
  [NEW]     +94  [NEW]      +5    anon.4f8fd67d74ae1f1600187cfeb0121be9.2.llvm.9654349716448276079
  +0.1%      +5  [ = ]       0    [Unmapped]
  [DEL]     -95  [DEL]      -5    anon.4f8fd67d74ae1f1600187cfeb0121be9.2.llvm.15410878768428557996
  [DEL]     -97  [DEL]      -7    anon.4f8fd67d74ae1f1600187cfeb0121be9.0.llvm.15410878768428557996
  [DEL]    -109  [DEL]     -19    anon.4f8fd67d74ae1f1600187cfeb0121be9.3.llvm.15410878768428557996
  [DEL]    -115  [DEL]     -25    anon.4f8fd67d74ae1f1600187cfeb0121be9.4.llvm.15410878768428557996
  [DEL]    -130  [DEL]     -40    anon.4f8fd67d74ae1f1600187cfeb0121be9.1.llvm.15410878768428557996
  [ = ]       0  [ = ]       0    TOTAL

@thieman thieman marked this pull request as ready for review May 7, 2026 19:25
@thieman thieman requested a review from a team as a code owner May 7, 2026 19:25
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented May 7, 2026

Regression Detector (Agent Data Plane)

Regression Detector Results

Run ID: 4b1418ab-4b90-4862-b9ba-ddf7dbb1d584

Baseline: d04bde8
Comparison: 85638fd
Diff

Optimization Goals: ✅ No significant changes detected

Experiments ignored for regressions

Regressions in experiments with settings containing erratic: true are ignored.

perf experiment goal Δ mean % Δ mean % CI trials links
otlp_ingest_logs_5mb_memory memory utilization +3.89 [+3.69, +4.09] 1 (metrics) (profiles) (logs)
otlp_ingest_logs_5mb_cpu % cpu utilization +2.41 [-2.38, +7.20] 1 (metrics) (profiles) (logs)
otlp_ingest_logs_5mb_throughput ingress throughput -0.01 [-0.13, +0.12] 1 (metrics) (profiles) (logs)

Fine details of change detection per experiment

perf experiment goal Δ mean % Δ mean % CI trials links
dsd_uds_512kb_3k_contexts_cpu % cpu utilization +9.63 [-49.41, +68.68] 1 (metrics) (profiles) (logs)
dsd_uds_1mb_3k_contexts_cpu % cpu utilization +5.17 [-48.90, +59.25] 1 (metrics) (profiles) (logs)
otlp_ingest_logs_5mb_memory memory utilization +3.89 [+3.69, +4.09] 1 (metrics) (profiles) (logs)
otlp_ingest_traces_5mb_cpu % cpu utilization +3.65 [+1.49, +5.82] 1 (metrics) (profiles) (logs)
otlp_ingest_logs_5mb_cpu % cpu utilization +2.41 [-2.38, +7.20] 1 (metrics) (profiles) (logs)
dsd_uds_10mb_3k_contexts_cpu % cpu utilization +2.36 [-27.50, +32.23] 1 (metrics) (profiles) (logs)
otlp_ingest_traces_ottl_filtering_5mb_cpu % cpu utilization +0.95 [-1.21, +3.11] 1 (metrics) (profiles) (logs)
otlp_ingest_traces_5mb_memory memory utilization +0.31 [+0.15, +0.46] 1 (metrics) (profiles) (logs)
otlp_ingest_traces_ottl_transform_5mb_memory memory utilization +0.26 [+0.10, +0.42] 1 (metrics) (profiles) (logs)
quality_gates_rss_dsd_low memory utilization +0.25 [+0.10, +0.41] 1 (metrics) (profiles) (logs)
quality_gates_rss_dsd_heavy memory utilization +0.17 [+0.05, +0.30] 1 (metrics) (profiles) (logs)
dsd_uds_512kb_3k_contexts_memory memory utilization +0.15 [+0.00, +0.29] 1 (metrics) (profiles) (logs)
quality_gates_rss_dsd_ultraheavy memory utilization +0.14 [-0.00, +0.27] 1 (metrics) (profiles) (logs)
otlp_ingest_traces_ottl_filtering_5mb_throughput ingress throughput +0.08 [+0.01, +0.16] 1 (metrics) (profiles) (logs)
otlp_ingest_traces_5mb_throughput ingress throughput +0.04 [-0.03, +0.12] 1 (metrics) (profiles) (logs)
dsd_uds_512kb_3k_contexts_throughput ingress throughput +0.01 [-0.05, +0.06] 1 (metrics) (profiles) (logs)
otlp_ingest_metrics_5mb_throughput ingress throughput +0.00 [-0.17, +0.18] 1 (metrics) (profiles) (logs)
dsd_uds_1mb_3k_contexts_throughput ingress throughput +0.00 [-0.05, +0.06] 1 (metrics) (profiles) (logs)
otlp_ingest_traces_ottl_transform_5mb_throughput ingress throughput -0.00 [-0.07, +0.07] 1 (metrics) (profiles) (logs)
otlp_ingest_logs_5mb_throughput ingress throughput -0.01 [-0.13, +0.12] 1 (metrics) (profiles) (logs)
dsd_uds_10mb_3k_contexts_throughput ingress throughput -0.02 [-0.19, +0.15] 1 (metrics) (profiles) (logs)
dsd_uds_100mb_3k_contexts_throughput ingress throughput -0.02 [-0.05, +0.01] 1 (metrics) (profiles) (logs)
quality_gates_rss_idle memory utilization -0.03 [-0.07, +0.01] 1 (metrics) (profiles) (logs)
dsd_uds_100mb_3k_contexts_memory memory utilization -0.04 [-0.20, +0.11] 1 (metrics) (profiles) (logs)
dsd_uds_500mb_3k_contexts_memory memory utilization -0.07 [-0.21, +0.08] 1 (metrics) (profiles) (logs)
dsd_uds_100mb_3k_contexts_cpu % cpu utilization -0.08 [-5.49, +5.32] 1 (metrics) (profiles) (logs)
dsd_uds_1mb_3k_contexts_memory memory utilization -0.11 [-0.25, +0.03] 1 (metrics) (profiles) (logs)
otlp_ingest_traces_ottl_filtering_5mb_memory memory utilization -0.22 [-0.46, +0.01] 1 (metrics) (profiles) (logs)
dsd_uds_500mb_3k_contexts_cpu % cpu utilization -0.35 [-1.85, +1.15] 1 (metrics) (profiles) (logs)
dsd_uds_10mb_3k_contexts_memory memory utilization -0.41 [-0.57, -0.25] 1 (metrics) (profiles) (logs)
quality_gates_rss_dsd_medium memory utilization -0.49 [-0.66, -0.33] 1 (metrics) (profiles) (logs)
otlp_ingest_metrics_5mb_cpu % cpu utilization -0.92 [-6.70, +4.86] 1 (metrics) (profiles) (logs)
dsd_uds_500mb_3k_contexts_throughput ingress throughput -1.45 [-1.57, -1.34] 1 (metrics) (profiles) (logs)
otlp_ingest_metrics_5mb_memory memory utilization -2.69 [-2.89, -2.50] 1 (metrics) (profiles) (logs)
otlp_ingest_traces_ottl_transform_5mb_cpu % cpu utilization -2.82 [-4.80, -0.84] 1 (metrics) (profiles) (logs)

Bounds Checks: ✅ Passed

perf experiment bounds_check_name replicates_passed observed_value links
quality_gates_rss_dsd_heavy memory_usage 10/10 123.59MiB ≤ 140MiB (metrics) (profiles) (logs)
quality_gates_rss_dsd_low memory_usage 10/10 41.29MiB ≤ 50MiB (metrics) (profiles) (logs)
quality_gates_rss_dsd_medium memory_usage 10/10 61.43MiB ≤ 75MiB (metrics) (profiles) (logs)
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 177.52MiB ≤ 200MiB (metrics) (profiles) (logs)
quality_gates_rss_idle memory_usage 10/10 28.34MiB ≤ 40MiB (metrics) (profiles) (logs)

Explanation

Confidence level: 90.00%
Effect size tolerance: |Δ mean %| ≥ 5.00%

Performance changes are noted in the perf column of each table:

  • ✅ = significantly better comparison variant performance
  • ❌ = significantly worse comparison variant performance
  • ➖ = no significant change in performance

A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".

For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:

  1. Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.

  2. Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that if our statistical model is accurate, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.

  3. Its configuration does not mark it "erratic".

@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot merged commit f91e8aa into main May 7, 2026
70 checks passed
dd-octo-sts Bot pushed a commit that referenced this pull request May 7, 2026
…nd 0.9 → 0.10 (#1609)

## Human Summary

Bumps our version of `lading` up to bring in the upgrade to `rand` from DataDog/lading#1865

Subsequent PRs will bump `lading` further to bring in some updates I'm working on (see DataDog/lading#1871), just wanted to get this yak out of the way independently

## Summary

- Updates `lading-payload` git rev to `01ef8d70`, picking up the rand 0.9 → 0.10 upgrade in lading (#1865) and other upstream improvements
- Updates millstone's pinned `rand = "0.9"` to the workspace `rand = "0.10"` to match lading-payload's expectation
- Fixes two `corpus.rs` call sites that broke with the new lading API: `DogStatsD::new` now takes `&Config` instead of `Config`, and the internal generator functions are de-genericized from `R: Rng` to concrete `StdRng`

The rand 0.9 → 0.10 upgrade in rand_core changes how `Rng` is implemented: `rand_core 0.10` only blanket-implements `Rng` for types satisfying `TryRng<Error=Infallible>` via `DerefMut`, which concrete RNGs satisfy through direct impls in the rand crate. Mixing a rand 0.9 `StdRng` with a rand 0.10 trait boundary produced opaque `DerefMut` errors. The fix is to use the same rand version throughout.

## Test plan

- [ ] `cargo check --workspace` passes
- [ ] `cargo clippy -p millstone` passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: travis.thieman <travis.thieman@datadoghq.com> f91e8aa
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