Skip to content

[CI] SearchSourceBuilderTests testSupportsParallelCollection failing #163337

Closed

Description

@infra-vault-gh-plugin-prod

Build Scans:

Reproduction Line:

./gradlew ":server:test" --tests "org.elasticsearch.search.builder.SearchSourceBuilderTests.testSupportsParallelCollection" -Dtests.seed=611D4D0204011623 -Dtests.locale=so-KE -Dtests.timezone=America/Caracas -Druntime.java=27

Applicable branches:
main

Reproduces locally?:
N/A

Failure History:
See dashboard

Failure Message:

java.lang.IllegalArgumentException: real_word_error_likelihood must be > 0.0

Issue Reasons:

  • [main] 1 consecutive failures in test testSupportsParallelCollection
  • [main] 1 consecutive failures in step ubuntu-2404_platform-support-unix
  • [main] 1 consecutive failures in pipeline elasticsearch-periodic-platform-support

Note:
This issue was created using new test triage automation. Please report issues or feedback to es-core-infra.

Activity

  1. added
    needs:riskRequires assignment of a risk label (low, medium, blocker)
    Team:Search FoundationsMeta label for the Search Foundations team in Elasticsearch
    on Oct 26, 2026
  2. elasticsearchmachine commented on Oct 26, 2026

    @elasticsearchmachine
    Collaborator

    Pinging @elastic/es-search-infra (Team:Search Foundations)

  3. infra-vault-gh-plugin-prod commented on Oct 26, 2026

    @infra-vault-gh-plugin-prod
    ContributorAuthor

    This has been muted on branch main

    Mute Reasons:

    • [main] 1 consecutive failures in test testSupportsParallelCollection
    • [main] 1 consecutive failures in step ubuntu-2404_platform-support-unix
    • [main] 1 consecutive failures in pipeline elasticsearch-periodic-platform-support

    Muted tasks:

    • :server:test

    Build Scans:

  4. elasticsearchmachine commented on Oct 26, 2026

    @elasticsearchmachine
    Collaborator

    Test Failure Analysis

    Summary

    • SearchSourceBuilderTests generates random suggest builders via PhraseSuggestionBuilderTests.randomPhraseSuggestionBuilder(), which calls maybeSet(testBuilder::realWordErrorLikelihood, randomFloat()). randomFloat() can return exactly 0.0, and PhraseSuggestionBuilder.realWordErrorLikelihood rejects <= 0.0 with real_word_error_likelihood must be > 0.0.
    • The sibling line for maxErrors was already guarded with Math.max(randomFloat(), Float.MIN_NORMAL). realWordErrorLikelihood was missed. This is a test-data bug, not a production bug.

    Release risk: low-risk

    The failure is a rare random-value edge case (0.0 float) in test generation. Production validation behaves as designed. It would only change if the production setter were also hit by real inputs, which isn't indicated.

    Impact

    • Affected branches: main
    • Affected OS: ubuntu-2404
    • Affected pipelines: elasticsearch-periodic-platform-support
    • Trend: single occurrence (1 consecutive failure), seed-dependent

    Reproduction

    Mitigation Proposal

    • Reproduction verdict: not reproduced, so confidence rests on code inspection. The exception text matches the setter exactly, and the maxErrors line shows this class of bug was fixed before.
    • Codebase investigation: server/src/test/.../suggest/phrase/PhraseSuggestionBuilderTests.java:39 and PhraseSuggestionBuilder.java:248-252. The confidence setter on the next line may need a similar check, so verify it.
    • Recent git history: not inspected (the shared git mirror was unreadable).
    • Proposed fix: change line 39 to maybeSet(testBuilder::realWordErrorLikelihood, Math.max(randomFloat(), Float.MIN_NORMAL));. Validate by running :server:test --tests "*PhraseSuggestionBuilderTests" --tests "*SearchSourceBuilderTests" a few hundred times, then remove the muted-tests.yml entry for SearchSourceBuilderTests.testSupportsParallelCollection.
    • Effort estimate: trivial — a one-line test change.
    • Confidence: 0.80 (high) — the exception message matches the generator exactly. The gap is that the failing seed did not reproduce.

    Generated by test-analysis · archimedes v1.3.0 · openrouter/anthropic/claude-sonnet-5.5

  5. self-assigned this
    on Oct 26, 2026
  6. added
    low-riskAn open issue or test failure that is a low risk to future releases
    and removed
    needs:riskRequires assignment of a risk label (low, medium, blocker)
    on Oct 26, 2026
  7. added a commit that references this issue on Oct 26, 2026
    17eee4b
  8. added a commit that references this issue on Oct 26, 2026
    749b752
  9. elasticsearchmachine commented on Oct 26, 2026

    @elasticsearchmachine
    Collaborator

    Test Analysis Accuracy Review

    Verdict ✅ accurate — overall score 0.95
    Root-cause match ✅ match
    Mitigation match ✅ match
    Release-risk accuracy ✅ accurate
    Predicted low-risk risk · test_hardening
    Actual fix test_hardening — #163423

    The analysis correctly identified that PhraseSuggestionBuilderTests.randomPhraseSuggestionBuilder() could generate realWordErrorLikelihood = 0.0 via randomFloat(), matching the sibling maxErrors guard pattern — the merged fix applied exactly the proposed Math.max(randomFloat(), Float.MIN_NORMAL) guard and removed the mute entry.


    Generated by review-test-analysis · archimedes v1.3.0 · agent-router/claude-sonnet-5

  10. added 4 commits that reference this issue on Oct 26, 2026
    b2fdeeb
    fea7f96
    a0cd8a9
    ceeb528
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

:Search Foundations/SearchCatch all for Search Foundations>test-failureTriaged test failures from CITeam:Search FoundationsMeta label for the Search Foundations team in Elasticsearchlow-riskAn open issue or test failure that is a low risk to future releases

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions