Skip to content

Keep repair-sweep tests from outgrowing the lane hang timeout - #2142

Merged
ppXD merged 1 commit into
mainfrom
fix/credential-repair-test-hang
Nov 7, 2026
Merged

ppXD merged 1 commit into
mainfrom
fix/credential-repair-test-hang

Conversation

@ppXD

@ppXD ppXD commented Nov 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • The Integration lane was killed twice by --blame-hang-timeout 5m inside SameHostConnectionsFlowTests.Credentials_whose_repositories_their_successors_connection_cannot_take_do_not_keep_a_repairable_one_waiting. The stranded-binding repair (CredentialSuccessionService.StrandedWithSuccessorAsync) unions one query per group of interchangeable connections in the whole database, for both the page load and the per-candidate verdict. Each sibling-connection test leaves a group behind, so pass time grew through the lane (3s, 6s, 9s, then ~70s per pass in the failing runs); that test needs four passes of four attempts and ran past 5 minutes.
  • BindingMoveKit.RetireOtherSiblingConnectionsAsync soft-deletes sibling connections left by earlier tests (never the kit's own); the sweeping tests call it first. Their wait loops now throw a TimeoutException after 2 minutes naming the watched signal and where to look.
  • Production behaviour is unchanged. The sweep cost is O(sibling groups) per attempt; with few groups in a real deployment this is cheap, but it is worth a follow-up if a deployment can hold hundreds.

Test plan

  • Credentials + OAuth integration classes (622 tests) twice locally, all passing; the refused-candidates test takes ~50 ms, slowest repair pass 90 ms
  • Integration lane on CI

…eout

The stranded-binding repair builds one query across every group of
interchangeable provider connections in the database, on each candidate it
attempts. Every sibling-connection test leaves a group behind, so late in the
Integration lane a pass took ~70s and the refused-candidates test, which
needs four passes of four attempts, ran past --blame-hang-timeout.

Retire the sibling connections earlier tests left before the tests that
sweep repeatedly, and fail their waits with a named timeout.
@ppXD
ppXD merged commit 3d2deea into main Nov 7, 2026
6 checks passed
@ppXD
ppXD deleted the fix/credential-repair-test-hang branch November 7, 2026 19:42
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