Test async RUM timer propagation as application code - #12502
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
More details
The package move matches all changed imports. It lets generic task instrumentation cover the async fixture as intended.
🤖 Datadog Autotest · Commit 2516df5 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
This comment has been minimized.
This comment has been minimized.
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
Build pipeline has failing jobs for 0cf5101: What to do next?
DetailsSince those jobs are not marked as being allowed to fail, the pipeline will most likely fail. |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
cf8ea07
into
master
What Does This Do
Moves the asynchronous RUM servlet fixture from the agent-reserved
datadog.trace.*namespace to the application-liketest.servlet5namespace.The fixture schedules response work through a
TimerTask. Generic task instrumentation deliberately excludes agent-owned classes underdatadog.trace.*, so the fixture’s task captured a continuation whenscheduled but was not instrumented when executed.
Moving it to an application namespace makes the test exercise the same propagation path as a real servlet application.
flowchart TD subgraph Before A1[Servlet schedules TimerTask] --> B1[Capture request continuation] B1 --> C1[Task class is under datadog.trace.*] C1 --> D1[Generic Runnable instrumentation excludes it] D1 --> E1[Continuation is never resumed] end subgraph After A2[Servlet schedules TimerTask] --> B2[Capture request continuation] B2 --> C2[Task class is under test.servlet5] C2 --> D2[Generic Runnable instrumentation applies] D2 --> E2[Resume and close continuation] E2 --> F2[Complete async response] endWhy?
The servlet is a test application fixture, not agent implementation code. Keeping it under the reserved agent namespace made the test unrepresentative and bypassed the instrumentation it was intended to verify.
This change fixes the fixture rather than weakening continuation diagnostics or adding a special case for the test.
Motivation
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]