Skip to content

ci(acceptance): experiment: 3 xdist workers with Chrome reuse - #129406

Closed
sentry-junior[bot] wants to merge 4 commits into
ci/backend-tests-armfrom
ci/acc-exp-reuse-3-workers
Closed

sentry-junior[bot] wants to merge 4 commits into
ci/backend-tests-armfrom
ci/acc-exp-reuse-3-workers

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

Experiment stacked on #129387. Not meant to merge. I'll post timings and then close it.

It includes the ci/acc-exp-poll and ci/acc-exp-chrome-reuse commits and adds one change: XDIST_WORKERS in acceptance.yml goes from 2 to 3.

On x64, 3 workers made no difference (test time −2%, within noise) and jobs were 5% longer. On Arm the runner is only about 67% busy during tests, so a third worker may help here, especially once per-test Chrome churn is gone.

via @joshuarli.

--

View Session [Sentry]

sentry-junior Bot and others added 2 commits October 30, 2026 23:37
… only on failure

Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
@github-actions github-actions Bot added the Scope: Backend Automatically applied to PRs that change backend components label Oct 30, 2026
execute_cdp_cmd exists only on the Chrome driver, so the reuse cache and
reset helper take webdriver.Chrome. Popping the cache into its own local
avoids the WebDriver type context rejecting the None default.
@sentry-junior

sentry-junior Bot commented Oct 31, 2026

Copy link
Copy Markdown
Contributor Author

Experiment results (Arm, 5 acceptance shards)

Acceptance test-step seconds per shard, from the GitHub Actions step timestamps:

Run Per-shard test step (s) Sum Slowest step Job median / slowest Result Reruns
Baseline #129387 (2 workers) 41142216797 #2 138, 148, 155, 169, 169 779 169 286 / 308 195 passed, 7 skipped 1 (IssueDetailsTest.test_stripped_event)
#129404 0.1s poll + failure-only debug capture 41145962251 125, 143, 146, 154, 160 728 (−7%) 160 275 / 284 195 passed, 7 skipped 0
#129405 + Chrome reuse 41145975549 105, 118, 119, 126, 146 614 (−21%) 146 246 / 286 195 passed, 7 skipped 1 (ReactAuthTest.test_organization_sso_with_totp)
#129405 + Chrome reuse, typing fix 41146968697 96, 114, 116, 123, 135 584 (−25%) 135 241 / 251 195 passed, 7 skipped 2 (both ReactAuthTest TOTP tests)
#129406 + Chrome reuse + 3 workers 41145986488 87, 100, 106, 118, 121 532 (−32%) 121 237 / 258 195 passed, 7 skipped 1 (ReactAuthTest.test_organization_sso_with_totp)
#129406 + Chrome reuse + 3 workers, restacked 41146990178 102, 107, 109, 115, 115 548 (−30%) 115 237 / 257 195 passed, 7 skipped 1 (AcceptOrganizationInviteTest.test_create_account_and_accept_invite, element not interactable)

Flakiness: all 4 Chrome-reuse runs had a rerun on shard 3, and 3 of them were test_auth_react.py TOTP tests (StopIteration in submit_second_factor: the visible OTP input check passed, but no displayed input was found when the elements were queried again). The runs with a fresh Chrome had 0 TOTP reruns: baseline, #129404, and 6 recent successful master acceptance runs. Chrome reuse probably exposes a race or leaked state there.

Other checks: Backend, backend typing (after the fix on #129405/#129406), getsentry dispatch, and getsentry / backend passed on all three PRs; getsentry / acceptance was skipped.

Cost: each job still spends about 2 minutes on setup, so job time drops less than test time. The job median goes from 286s to 275s (poll), 241–246s (reuse), and 237s (reuse + 3 workers).

This PR (#129406): 3 workers saves another ~7–9% of test time and ~15–25s on the slowest shard compared with reuse alone, but it depends on Chrome reuse and has the same flake risk. Worth revisiting after reuse is deflaked. Closing as an experiment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant