Run heavy color blocks in a serial Nala lane (fix shard-1 contention) - #710
Draft
hadobe wants to merge 1 commit into
Draft
Run heavy color blocks in a serial Nala lane (fix shard-1 contention)#710hadobe wants to merge 1 commit into
hadobe wants to merge 1 commit into
Conversation
The color-shared blocks (color-contrast-checker, color-explore, color-extract, color-headline, color-search-marquee, color-wheel) are heavy Spectrum canvas/image-processing blocks. Playwright shards by contiguous test order, so the alphabetically-adjacent color-* blocks all land in ONE shard and run 3-at-a-time (workers=3), where they starve each other's decoration and time out in waitReady() (30s wait for data-block-status="loaded"). They pass solo and serial, fail clustered — pure concurrency contention, not a block bug. Isolate them: - Each of the 4 sharded lanes now excludes @color (NALA_EXTRA_GREP_INVERT), so the non-color suite (215 tests) partitions cleanly 4 ways with no color cluster. - A new 5th matrix lane runs ONLY @color with workers=1 (serial), so the heavy color blocks never run concurrently. The lane is part of the same run-nala-tests matrix, so the existing aggregate gate (needs: run-nala-tests) covers it with no branch-protection change. pr.run.sh: collapse the two --grep-invert flags into one combined regex (Playwright only honours the last --grep-invert), extendable via NALA_EXTRA_GREP_INVERT; add NALA_GREP for a positive lane-restricting grep. Verified locally against stage: - Color lane (-g @color --workers=1, all 3 browsers): 24 passed / 6 skipped. - Shard lanes exclude color: 0 color tests, 215 non-color split 4x54. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Hello, I'm the AEM Code Sync Bot and I will run some actions to deploy your branch and validate page speed.
Commits
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft — implements Option 1 from the flakiness discussion.
Problem
The color-shared blocks (
color-contrast-checker,color-explore,color-extract,color-headline,color-search-marquee,color-wheel) are heavy Spectrum canvas/image-processing blocks. Playwright shards by contiguous test order, so the alphabetically-adjacentcolor-*blocks all land in one shard and run 3-at-a-time (workers: 3), where they starve each other's decoration and time out inwaitReady()(30s wait fordata-block-status="loaded").Reproduced locally: they pass solo and serial, fail clustered — pure concurrency contention, not a block bug. They already have
martech=off, so it isn't trackers either.Fix — isolate color into its own serial lane
@color(NALA_EXTRA_GREP_INVERT), so the non-color suite (215 tests) partitions cleanly 4 ways with no color cluster.@colorwithworkers: 1(serial), so the heavy color blocks never run concurrently.Workers stay 3 on the shard lanes — no per-shard worker tuning. The color lane is part of the same
run-nala-testsmatrix, so the existing aggregate gate (needs: run-nala-tests) covers it with no branch-protection change.pr.run.sh--grep-invertflags into one combined regex — Playwright only honours the last--grep-invert, sonoprwas effectively dead; nownopr|@monitoring[|@color]all apply. Extendable viaNALA_EXTRA_GREP_INVERT.NALA_GREPfor a positive lane-restricting grep (the color lane).Verified locally (against stage)
-g @color --workers=1, all 3 browsers): 24 passed / 6 skipped, ~1.5 min — the exact blocks that were failing under concurrency.pr.run.shsyntax OK; both lane commands construct correctly.Cost
The color lane runs in parallel with the 4 shards (~2–4 min serial), so it doesn't add to gate wall-clock. Independent of #704 (tracker rollout) — different files, merge in any order.
Follow-up option (not here): now that the heavy color blocks are out of the shards, the shard lanes could likely go back to
workers: 4for speed — worth trying once this lands.🤖 Generated with Claude Code