Skip to content

[reference] rxjava-3.0 async blind regeneration for #11927#11939

Draft
jordan-wong wants to merge 1 commit into
masterfrom
eval/rxjava-3.0-async-blind-regen-20260714
Draft

[reference] rxjava-3.0 async blind regeneration for #11927#11939
jordan-wong wants to merge 1 commit into
masterfrom
eval/rxjava-3.0-async-blind-regen-20260714

Conversation

@jordan-wong

@jordan-wong jordan-wong commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

[reference] rxjava-3.0 blind regeneration for #11927

Reference output from the toolkit's automated instrumentation-authoring
workflow, run against the draft skill in #11927. Not intended to be merged
as-is.

Research context

This PR is part of the async-category research cycle: verifying whether
the current skill draft in #11927 generalizes to Category B
(context-propagation) libraries after the HTTP-cycle skill updates. rxjava-3.0
was chosen because it has a mature existing implementation on master,
making regen output directly comparable.

Changes applied on top of eval output

Original eval branch inherited a stash-merge revert of #11852 during eval
branch setup, dropping DD_TRACE_ROBOLECTRIC_ENABLED from metadata plus 172
unrelated files. Root cause was a stale local checkout, not a toolkit or
skill issue. Rebased onto current master by cherry-picking only in-scope
paths under dd-java-agent/instrumentation/rxjava/rxjava-3.0/.

Original: bd134f34bd → rebased: b46346b45b

Where to focus review

The reference output should be compared against the master implementation
to surface how well the current skill draft preserves regen-critical
details. Known divergences:

  1. super(...) alias dropped. Master has super("rxjava", "rxjava-3");
    eval produced super("rxjava"). This silently breaks any customer
    using DD_TRACE_RXJAVA_3_ENABLED as an opt-out toggle. This is the
    canonical Rule First PR - Implements the Opentracing API #2 (regen-preservation) violation the skill should
    prevent.

  2. muzzle { fail { ... } } block missing. Master has an explicit
    fail block asserting rxjava3 advice must not match against the
    rxjava2 artifact (rxjava3 and rxjava2 use different Java namespaces
    but the same Maven module name, so this is a real hazard). Eval
    dropped the block entirely.

  3. reactive-streams compileOnly version regressed from 1.0.3 to
    1.0.0. Silent narrowing of the tested surface.

Local CI-equivalent (check + muzzle + latestDepTest) is fully
green. The one remaining red check on CI (muzzle: [3/8]) does not
reproduce locally and appears to be a CI-side sharding flake.

Base: master @ 05671ce3b0

@datadog-datadog-prod-us1-2

This comment has been minimized.

@dd-octo-sts

dd-octo-sts Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 13.98 s 14.02 s [-0.9%; +0.4%] (no difference)
startup:insecure-bank:tracing:Agent 12.87 s 13.08 s [-2.1%; -1.0%] (maybe better)
startup:petclinic:appsec:Agent 16.43 s 16.71 s [-5.9%; +2.5%] (no difference)
startup:petclinic:iast:Agent 16.41 s 16.83 s [-6.7%; +1.7%] (no difference)
startup:petclinic:profiling:Agent 16.25 s 16.80 s [-7.5%; +0.9%] (no difference)
startup:petclinic:sca:Agent 16.78 s 16.66 s [-0.3%; +1.7%] (no difference)
startup:petclinic:tracing:Agent 15.60 s 15.64 s [-6.1%; +5.7%] (unstable)

Commit: b46346b4 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

Automated integration-authoring pass on rxjava-3.0, produced against the
draft skill in #11927 (which was in-tree on the target checkout at
generation time — using the skill-loading precedence fix from the
2026-07-13 HTTP cycle correction). Reference for #11927 reviewers to
see concrete output the current skill draft produces.

Not intended to be merged as-is.

Base: master @ 05671ce (rebased from original bd134f3; the original
branch inherited a stash-merge revert of #11852 during eval branch setup
that dropped DD_TRACE_ROBOLECTRIC_ENABLED from metadata plus 172 unrelated
files. This rebased version cherry-picks ONLY the rxjava-3.0 module output
onto current master, preserving all unrelated upstream changes.)

Cost: \$43.23, wall time ~3.5h, reviewer approved with 0 todos remaining.
Diff scope: dd-java-agent/instrumentation/rxjava/rxjava-3.0/ only.
Metadata: no change (all rxjava3 entries already present on master).
@jordan-wong jordan-wong force-pushed the eval/rxjava-3.0-async-blind-regen-20260714 branch from bd134f3 to b46346b Compare July 14, 2026 12:03
@jordan-wong

Copy link
Copy Markdown
Contributor Author

Rebased 2026-07-14 — branch force-pushed onto current master to fix the shared config-inversion-linter failure.

Root cause (not a toolkit bug): the original eval branch inherited a stash-merge revert of #11852 during branch setup. The merge commit 8481176619 ("pre-rxjava3-clean-branch") combined two parents that individually both had DD_TRACE_ROBOLECTRIC_ENABLED, but the git-plumbing merge (stash-based) silently dropped it along with 172 other unrelated files' worth of #11852 changes. The toolkit workflow then generated its output on that already-broken tree, so the terminal commit inherited the deletion.

Fix: cherry-picked only the in-scope dd-java-agent/instrumentation/rxjava/rxjava-3.0/ paths from the original terminal SHA (bd134f34bd) onto fresh master (05671ce3b0), following the ready-for-review skill Phase 3 recipe. All rxjava3 metadata entries were already present on master, so no metadata change is needed.

Result: 21 files changed (all under rxjava/rxjava-3.0/), no sibling contamination, no unrelated file deletions.

Original commit: bd134f34bd → rebased: b46346b45b

@jordan-wong jordan-wong added tag: do not merge Do not merge changes inst: others All other instrumentations and removed type: feature Enhancements and improvements comp: tooling Build & Tooling labels Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: others All other instrumentations tag: do not merge Do not merge changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant