[ML] Fix Flaky Audit Message Assertion in testWithDatastream for RegressionIT and ClassificationIT #138065
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.
Both
testWithDatastreaminRegressionIT.javaandtestWithDatastreamsinClassificationIT.javasometimes fail becauseassertThatAuditMessagesMatchdoesn't reliably wait for all audit messages to be written. Audit messages are written asynchronously (fire-and-forget), creating a race condition. The tests complete quickly (on a small dataset: 300 training + 50 non-training rows), increasing the likelihood of a race condition. Both tests use the sameassertThatAuditMessagesMatchmethod fromMlNativeDataFrameAnalyticsIntegTestCase, so fixing it resolves both test failures.This PR verifies all expected message prefixes exist, adds robust waiting with timeout and retries, refreshes the notifications index before each check, and restores a more lenient size check, ensuring reliability and thoroughness.
Fixes #128166
Fixes #129457