Skip to content

Fix races and a broken test surfaced by the first nightly shard - #162

Merged
aldro61 merged 1 commit into
mainfrom
fix/nightly-shard-failures
Sep 24, 2026
Merged

aldro61 merged 1 commit into
mainfrom
fix/nightly-shard-failures

Conversation

@aldro61

@aldro61 aldro61 commented Sep 24, 2026

Copy link
Copy Markdown
Collaborator

The first nightly run of instance_pool_ci.yml (run 35916033360) had 34 shard failures. None were caused by #160/#161's logic: two load races at -n 20 and one test that fails every time.

  • Navigation cheat (20 L2 failures). The final menu item's label always matches two elements: the row is aria-labelledby its link. The cheat called count() before the filtered menu had finished loading, got ≤1, skipped .first, and click() then hit a strict-mode violation. It now always takes .first, which is what it already did whenever the menu had loaded.
  • Private task setup (13 L3 failures). create_private_task_and_get_sys_id waited for networkidle (30s timeout) even when user_sys_id is passed, which L3 always does. The wait is now only in the branch that reads the page.
  • test_filter_list_task (1 failure, fails every time). The ? of the classic target URL wasn't encoded, so the query never reached the list ("There are no filters yet."). Locally it went from 9/10 failing to 10/10 passing.

Testing

  • 33 failed compositional tests rerun at WORKARENA_TEST_SEED=266, -n 5: 32 passed. The remaining one failed later, in the form cheat (g_form undefined in form.py:_get_fields). It is a separate intermittent race under parallel load and passed 2/2 run on its own. Not addressed here.
  • Fast PR suite: 30 passed.
  • The L1 CreateChangeRequestTask failure on instance 26 passes locally. The log doesn't show the validation message, so it's not addressed here.

🤖 Generated with Claude Code

- navigation: always take the first menu item matching the label. The row
  is aria-labelledby its link, so there are always two matches; checking
  count() before the menu finished rendering let click() hit a strict-mode
  violation under load (20 L2 failures in run 35916033360).
- private_tasks: only wait for networkidle when the page is actually read
  for the user's sys_id. L3 always passes user_sys_id, and the wait timed
  out after 30s under load (13 L3 failures).
- test_filter_list_task: encode the "?" of the classic target URL so the
  query reaches the list; the test failed deterministically before.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@aldro61
aldro61 merged commit 428db9f into main Sep 24, 2026
6 checks passed
@aldro61
aldro61 deleted the fix/nightly-shard-failures branch September 24, 2026 14:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant