Fix ML tests failing with "no shards available" #136800
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Disclaimer: I'm not entirely sure this is the root cause of the failing tests, because I haven't been able to reproduce it in a controlled environment.
Important observations:
ml-stats-*, but never creates it. This means in isolation it will always find no results (no matching indices), and the test succeeds.ml-stats-000001must be lingering from a previous test. However, all tests start with wiping Elasticsearch, including all indices (see: ESRestTestCase#wipeCluster).I think the following is the root cause of the failing tests:
TrainedModelStatsServicecollecting inference stats and writing them to Elasticsearch via a scheduler that triggers every second.This leads to the following failing sequence of events:
The following should fix it (in theory):
Fixes: #62699 #121726 #123034 #123200 #124168 #125641 #125642 #134257 #125750 #125909 #126299 #127625 #131364 #133440