Skip to content

Increase Merge_ConcurrentWithMemoryTypes_ThreadSafe timeout to 30s - #66

Merged
saguiitay merged 1 commit into
version-1.15from
fix/merge-concurrent-memory-types-ci-budget
May 1, 2026
Merged

Increase Merge_ConcurrentWithMemoryTypes_ThreadSafe timeout to 30s#66
saguiitay merged 1 commit into
version-1.15from
fix/merge-concurrent-memory-types-ci-budget

Conversation

@saguiitay

Copy link
Copy Markdown
Owner

Issue

CI run 25215421113 on PR #65 (version-1.15 → master) reported one failed test on net8.0:

Failed CardinalityEstimation.Test.ConcurrentCardinalityEstimatorMemoryTests.Merge_ConcurrentWithMemoryTypes_ThreadSafe [5 s]
Error Message:
   Merges should complete without deadlock
Expected: True
Actual:   False

The duration matches the Task.WaitAll(mergeTasks, TimeSpan.FromSeconds(5)) budget exactly — the test timed out rather than detecting an actual deadlock. Locally on Windows the same test takes ~25 ms (200x under budget). The 5 s budget is too tight for a cold ubuntu-latest runner under contention.

Fix

Bumped the budget to 30 s (ConcurrentCardinalityEstimatorMemoryTests.cs:552), matching the budget already used by Merge_CrossPairs_HighConcurrency_DoesNotDeadlock. Added a brief comment explaining the rationale. The test still fails fast on a real deadlock.

Tests

Test-only change. The modified test (Merge_ConcurrentWithMemoryTypes_ThreadSafe) passes locally on both net8.0 and net10.0; the full suite is 226 passed / 1 skipped on both TFMs.

Other changes

No production code changes. No <PackageReleaseNotes> entry — flaky-test fix is not user-visible. No version bump (accumulates on version-1.15).

The 5 second Task.WaitAll budget was too tight for shared CI runners.
Locally the merges complete in tens of milliseconds, but on a cold
ubuntu-latest runner under contention this test recently timed out
exactly at the 5 s mark on net8.0 (PR #65 / run 25215421113), reporting
'Merges should complete without deadlock' even though no deadlock
existed.

Bumped the budget to 30 s, matching the deadlock-detection budget used
by Merge_CrossPairs_HighConcurrency_DoesNotDeadlock. This still fails
fast on a real deadlock while eliminating the flake.

Test-only change; no production code touched, so no PackageReleaseNotes
entry. No version bump (accumulates on version-1.15).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@saguiitay
saguiitay merged commit 9a1a0c0 into version-1.15 May 1, 2026
@saguiitay
saguiitay deleted the fix/merge-concurrent-memory-types-ci-budget branch May 1, 2026 13:21
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