You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Flaky test report: committed-code failures on 2026-06-13
This report covers test failures recorded in the OpenSearch metrics cluster for committed-code runs (Timer + Post Merge Action) over the 24-hour window 2026-06-13T10:00 UTC → 2026-06-14T10:00 UTC, with historical context across all build types (including PR builds).
Summary table
Sorted by total unique builds historically affected (descending). All 7 reproduction attempts with the original seed passed locally — none of the failures reproduced deterministically.
† Build 80356 ran on the 2.19 branch; the failure stack trace did not include a SeedInfo/tests.seed value (the assertion came from assertBusy inside InternalTestCluster.validateClusterFormed, which strips the randomized-runner seed frame). The local repo is on main, so a same-branch reproduction was not attempted.
‡ The local repo had staged changes in server/src/main/java/org/opensearch/common/util/concurrent/ at the time of reproduction (ContextPreservingExecutorService.java, OpenSearchExecutors.java, ThreadPool.java) which directly overlap with the package under test. Reproduction was therefore on a modified codebase.
Reproduction methodology
For each distinct test:
The seed was extracted from the Jenkins test report errorStackTrace (SeedInfo.seed([…])).
The test was run on the local repository (HEAD 90fdbf95a0fbb22514004d7f21747fb9411446f3, branch main) with:
Each run was performed once (per the request); pass/fail was determined from the resulting JUnit XML.
Per the flaky test investigation guidance, RandomizedRunner seeds the Random streams but does not control thread scheduling, network timing, GC pauses, or disruption-simulation timing, so a single seed run is not a reliable reproducer for cluster-disruption-style tests. The "did not reproduce" results below should therefore be interpreted as "not deterministically reproducible from the seed alone", not as evidence of a bug fix.
Reproduction: not attempted (no seed; different branch from local repo)
Historical pattern: 966 unique builds since 2024-03-25, by far the most prolific item in this report. Was extremely flaky on main from 2024-04 through 2025-04 (75–125 unique builds/month), then dropped sharply to single-digit numbers per month from 2025-05 onwards. The current sighting is on 2.19, where the apparent fix on main may not be fully effective.
Trend: Improving on main; still appears intermittently on backport branches.
Failure message: replica shards haven't caught up with primary expected:<16> but was:<13>
Seed: 32A45E01CEA9D37B:1ED344167E4B223
Reproduction: ran 2 parameterized cases; both PASSED locally
Historical pattern: 143 unique builds since 2024-10. Effectively dormant until 2025-07 (47 builds), spike continued 24 in 2025-08, then a long quiet period, with a renewed climb starting 2026-02 (17/13/9/19/11 builds in Feb–Jun 2026).
Recent failure: build 80342 (Timer, main) on 2026-06-13
Failure message: java.lang.AssertionError (no message in error details)
Seed: 2F42723B70A09626
Reproduction: PASSED locally (took 82 seconds for the test)
Historical pattern: 34 unique builds since 2024-04, with a multi-month gap mid-2025 and a small bump in 2026-04 (5 builds). Most recent months: 3/5/2/1.
Recent failure: build 80337 (Timer, main) on 2026-06-13
Failure message: Expected: <26L> but: was <71L> (operations-recovered count mismatch)
Seed: 8B2B52065FD5E76F:7170DF4248D04327
Reproduction: PASSED locally
Historical pattern: only 9 unique builds across 2 years (3 in 2024-06, 1 in 2024-07, 2 in 2024-09, then 1 in 2025-02, 1 in 2026-05, 1 in 2026-06).
Trend: Stable, very rare.
8. AbstractAsyncTaskTests.testChangeInterval
Recent failure: build 80343 (Timer, main) on 2026-06-13
Failure message: java.lang.AssertionError (no message)
Seed: E00EFEE085576719:199B75570907EACC
Reproduction: PASSED locally on a modified codebase (uncommitted/staged changes were present in org.opensearch.common.util.concurrent.*, the package under test)
Historical pattern: only 4 unique builds in 2 years (2024-06, 2024-08, 2025-10, 2026-06).
Trend: Stable, extremely rare.
Notes & caveats
This report describes observed flake patterns, not root causes. No code changes were made.
Reproductions were single-shot with the seed only. To convert "did not reproduce" into useful evidence, the next investigator should run with -Dtests.iters=N (N≥20 per the steering guidance) on each test individually.
The local repo had unrelated staged changes in org.opensearch.common.util.concurrent.* at the time the report was generated, which is why the AbstractAsyncTaskTests.testChangeInterval reproduction is flagged with a caveat.
Build 80356 (MinimumClusterManagerNodesIT) ran on the 2.19 branch; cross-checking against the current main improvement pattern is something a maintainer of that area should do explicitly before drawing conclusions about the backport branch.
Metrics cluster query: gradle-check-* index, time range 2026-06-13T10:00Z → 2026-06-14T10:00Z, filter test_status:FAILED AND ((invoke_type:Timer AND git_reference:main) OR (invoke_type:"Post Merge Action" AND pull_request_title:"push trigger main *")), plus the 2.19 Timer run.
Per-test history: wildcard query on test_name with monthly date_histogram and cardinality aggregation on build_number.
Seeds extracted from Jenkins testReport/api/jsonerrorStackTrace fields (SeedInfo.seed([…])).
Flaky test report: committed-code failures on 2026-06-13
This report covers test failures recorded in the OpenSearch metrics cluster for committed-code runs (Timer + Post Merge Action) over the 24-hour window 2026-06-13T10:00 UTC → 2026-06-14T10:00 UTC, with historical context across all build types (including PR builds).
Summary table
Sorted by total unique builds historically affected (descending). All 7 reproduction attempts with the original seed passed locally — none of the failures reproduced deterministically.
MinimumClusterManagerNodesIT.testThreeNodesNoClusterManagerBlockFullRollingRestartIT.testFullRollingRestart_withNoRecoveryPayloadAndSourceClusterShardLimitIT.testOpenIndexOverLimitRareClusterStateIT.testDisassociateNodesWhileShardInitRemoteSplitIndexIT.testSplitFromOneToNRestoreShallowSnapshotV2IT.testRestoreShallowSnapshotRepositoryIndexRecoveryIT.testRecoverLocallyUpToGlobalCheckpointAbstractAsyncTaskTests.testChangeInterval† Build 80356 ran on the
2.19branch; the failure stack trace did not include aSeedInfo/tests.seedvalue (the assertion came fromassertBusyinsideInternalTestCluster.validateClusterFormed, which strips the randomized-runner seed frame). The local repo is onmain, so a same-branch reproduction was not attempted.‡ The local repo had staged changes in
server/src/main/java/org/opensearch/common/util/concurrent/at the time of reproduction (ContextPreservingExecutorService.java,OpenSearchExecutors.java,ThreadPool.java) which directly overlap with the package under test. Reproduction was therefore on a modified codebase.Reproduction methodology
For each distinct test:
errorStackTrace(SeedInfo.seed([…])).90fdbf95a0fbb22514004d7f21747fb9411446f3, branchmain) with:Per the flaky test investigation guidance,
RandomizedRunnerseeds theRandomstreams but does not control thread scheduling, network timing, GC pauses, or disruption-simulation timing, so a single seed run is not a reliable reproducer for cluster-disruption-style tests. The "did not reproduce" results below should therefore be interpreted as "not deterministically reproducible from the seed alone", not as evidence of a bug fix.Per-test details
1.
MinimumClusterManagerNodesIT.testThreeNodesNoClusterManagerBlock2.19) on 2026-06-14T06:57:56ZMissing cluster-manager, expected nodes: …fromassertBusyinsideInternalTestCluster.validateClusterFormedmainfrom 2024-04 through 2025-04 (75–125 unique builds/month), then dropped sharply to single-digit numbers per month from 2025-05 onwards. The current sighting is on2.19, where the apparent fix onmainmay not be fully effective.main; still appears intermittently on backport branches.2.
FullRollingRestartIT.testFullRollingRestart_withNoRecoveryPayloadAndSourcemain) on 2026-06-14p0={"cluster.indices.replication.strategy":"SEGMENT"}replica shards haven't caught up with primary expected:<16> but was:<13>32A45E01CEA9D37B:1ED344167E4B2233.
ClusterShardLimitIT.testOpenIndexOverLimitmain) on 2026-06-13p0={"opensearch.experimental.feature.writable_warm_index.enabled":"true"}CloseIndexResponse failed - not acked(assertion inassertAcked)F6EB11AAFAFCB87:5EC1C1AA21554CF14.
RareClusterStateIT.testDisassociateNodesWhileShardInitmain) on 2026-06-14java.lang.AssertionError(no message)1CBBFB5B8908F2A7:7DA969F9131DC7895.
RemoteSplitIndexIT.testSplitFromOneToNmain) on 2026-06-13java.lang.AssertionError(no message in error details)2F42723B70A096266.
RestoreShallowSnapshotV2IT.testRestoreShallowSnapshotRepository1652e069add9…) on 2026-06-13p0={"opensearch.experimental.feature.writable_warm_index.enabled":"true"}org.opensearch.index.engine.RefreshFailedEngineException: Refresh failed1EF89954B4332642:1B8383150E3D376B7.
IndexRecoveryIT.testRecoverLocallyUpToGlobalCheckpointmain) on 2026-06-13Expected: <26L> but: was <71L>(operations-recovered count mismatch)8B2B52065FD5E76F:7170DF4248D043278.
AbstractAsyncTaskTests.testChangeIntervalmain) on 2026-06-13java.lang.AssertionError(no message)E00EFEE085576719:199B75570907EACCorg.opensearch.common.util.concurrent.*, the package under test)Notes & caveats
-Dtests.iters=N(N≥20 per the steering guidance) on each test individually.org.opensearch.common.util.concurrent.*at the time the report was generated, which is why theAbstractAsyncTaskTests.testChangeIntervalreproduction is flagged with a caveat.MinimumClusterManagerNodesIT) ran on the2.19branch; cross-checking against the currentmainimprovement pattern is something a maintainer of that area should do explicitly before drawing conclusions about the backport branch.Sources
gradle-check-*index, time range2026-06-13T10:00Z→2026-06-14T10:00Z, filtertest_status:FAILEDAND ((invoke_type:Timer AND git_reference:main)OR(invoke_type:"Post Merge Action" AND pull_request_title:"push trigger main *")), plus the2.19Timer run.wildcardquery ontest_namewith monthlydate_histogramandcardinalityaggregation onbuild_number.testReport/api/jsonerrorStackTracefields (SeedInfo.seed([…])).