Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[8.12] [Security Solution] Improve logging for FTR test `retry` function (#176316) #176497

Merged
merged 1 commit into from
Feb 8, 2024

Conversation

kibanamachine
Copy link
Contributor

Backport

This will backport the following commits from main to 8.12:

Questions ?

Please refer to the Backport tool documentation

…astic#176316)

## Summary

**Fixes:**
- elastic#175481
- elastic#175250

### Description

Improves logging for the `retry` FTR integration testing utility that is
used to wrap helpers that make endpoint calls or direct Elasticsearch
operations.

The previous logging would only explain that the maximum amount of
retries had been reached, with the actual error caused in the test being
lost, which proved hard to debug.

These changes catches the error and log it, allowing us to understand
why a retried test failed.

Error now reported as:

```
[00:00:19]         │ERROR Retrying installPrebuiltRulesPackageByVersion: Error: expected 500 "Internal Server Error", got 200 "OK"
[00:00:19]         │ debg --- retry.tryForTime failed again with the same message...
[00:00:19]         │ERROR Reached maximum number of retries for test: 2/2
[00:00:19]         └- ✖ fail: Rules Management - Prebuilt Rules - Update Prebuilt Rules Package @ess @serverless @skipInQA update_prebuilt_rules_package should allow user to install prebuilt rules from scratch, then install new rules and upgrade existing rules from the new package
[00:00:19]         │       Error: "Reached maximum number of retries for test: 2/2"
[00:00:19]         │       at block (retry.ts:72:16)
[00:00:19]         │       at runAttempt (retry_for_success.ts:29:21)
[00:00:19]         │       at retryForSuccess (retry_for_success.ts:79:27)
[00:00:19]         │       at RetryService.tryForTime (retry.ts:23:12)
[00:00:19]         │       at retry (retry.ts:62:20)
[00:00:19]         │       at installPrebuiltRulesPackageByVersion (install_fleet_package_by_url.ts:77:25)
[00:00:19]         │       at Context.<anonymous> (update_prebuilt_rules_package.ts:106:46)
[00:00:19]         │       at Object.apply (wrap_function.js:73:16)
```
Main error is still `"Reached maximum number of retries for test: 2/2"`,
but now additional logging of exactly **what failed in the test** is
error-logged as seen above: `ERROR Retrying
installPrebuiltRulesPackageByVersion: Error: expected 500 "Internal
Server Error", got 200 "OK"`

**Flaky test run:**
- Shared 50 and 50:
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5068
- Ess 100 runs:
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5091
- Serverless 100 runs:
https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/5092

### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

(cherry picked from commit 479a022)
@kibanamachine kibanamachine merged commit c5a102b into elastic:8.12 Feb 8, 2024
30 checks passed
@kibana-ci
Copy link
Collaborator

💚 Build Succeeded

Metrics [docs]

✅ unchanged

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

cc @jpdjere

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants