-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[data.search.bsearch] Forward request abortSignal to search strategy #169041
Conversation
Pinging @elastic/kibana-data-discovery (Team:DataDiscovery) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes LGTM! Thanx Lukas!
@elasticmachine merge upstream |
## Summary We found out that for ES|QL queries while the kibana server (and browser) timeouts in 2 minutes, the requests are still running in ES. So instead of being aborted in 2 minutes, the hit a 5minute timeout from the proxy which retries 3 times and then aborts. This happens ONLY when bfetch is enabled (which is the default) After an investigation with Rudolf it seems that we don't abort correctly in bsearch. Lukas is fixing it here #169041 .
## Summary We found out that for ES|QL queries while the kibana server (and browser) timeouts in 2 minutes, the requests are still running in ES. So instead of being aborted in 2 minutes, the hit a 5minute timeout from the proxy which retries 3 times and then aborts. This happens ONLY when bfetch is enabled (which is the default) After an investigation with Rudolf it seems that we don't abort correctly in bsearch. Lukas is fixing it here elastic#169041 . (cherry picked from commit 6037805)
…9206) # Backport This will backport the following commits from `main` to `8.11`: - [[ES|QL] Force ES client timeout after 2 minutes (#168929)](#168929) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Stratoula Kalafateli","email":"efstratia.kalafateli@elastic.co"},"sourceCommit":{"committedDate":"2023-10-18T08:32:29Z","message":"[ES|QL] Force ES client timeout after 2 minutes (#168929)\n\n## Summary\r\n\r\nWe found out that for ES|QL queries while the kibana server (and\r\nbrowser) timeouts in 2 minutes, the requests are still running in ES. So\r\ninstead of being aborted in 2 minutes, the hit a 5minute timeout from\r\nthe proxy which retries 3 times and then aborts.\r\n\r\nThis happens ONLY when bfetch is enabled (which is the default)\r\n\r\nAfter an investigation with Rudolf it seems that we don't abort\r\ncorrectly in bsearch. Lukas is fixing it here\r\nhttps://github.com//pull/169041 .","sha":"6037805fb068c8dc703999f656b110e986279614","branchLabelMapping":{"^v8.12.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:prev-minor","v8.11.0","Feature:ES|QL","v8.12.0"],"number":168929,"url":"https://github.com/elastic/kibana/pull/168929","mergeCommit":{"message":"[ES|QL] Force ES client timeout after 2 minutes (#168929)\n\n## Summary\r\n\r\nWe found out that for ES|QL queries while the kibana server (and\r\nbrowser) timeouts in 2 minutes, the requests are still running in ES. So\r\ninstead of being aborted in 2 minutes, the hit a 5minute timeout from\r\nthe proxy which retries 3 times and then aborts.\r\n\r\nThis happens ONLY when bfetch is enabled (which is the default)\r\n\r\nAfter an investigation with Rudolf it seems that we don't abort\r\ncorrectly in bsearch. Lukas is fixing it here\r\nhttps://github.com//pull/169041 .","sha":"6037805fb068c8dc703999f656b110e986279614"}},"sourceBranch":"main","suggestedTargetBranches":["8.11"],"targetPullRequestStates":[{"branch":"8.11","label":"v8.11.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.12.0","labelRegex":"^v8.12.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/168929","number":168929,"mergeCommit":{"message":"[ES|QL] Force ES client timeout after 2 minutes (#168929)\n\n## Summary\r\n\r\nWe found out that for ES|QL queries while the kibana server (and\r\nbrowser) timeouts in 2 minutes, the requests are still running in ES. So\r\ninstead of being aborted in 2 minutes, the hit a 5minute timeout from\r\nthe proxy which retries 3 times and then aborts.\r\n\r\nThis happens ONLY when bfetch is enabled (which is the default)\r\n\r\nAfter an investigation with Rudolf it seems that we don't abort\r\ncorrectly in bsearch. Lukas is fixing it here\r\nhttps://github.com//pull/169041 .","sha":"6037805fb068c8dc703999f656b110e986279614"}}]}] BACKPORT--> Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
## Summary We found out that for ES|QL queries while the kibana server (and browser) timeouts in 2 minutes, the requests are still running in ES. So instead of being aborted in 2 minutes, the hit a 5minute timeout from the proxy which retries 3 times and then aborts. This happens ONLY when bfetch is enabled (which is the default) After an investigation with Rudolf it seems that we don't abort correctly in bsearch. Lukas is fixing it here elastic#169041 .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code changes LGTM, and I tested locally and confirmed the abort controller is cancelled when refreshing a search in Discover while the previous is still in flight. Although I'm not sure if the failing tests are related to these changes, so @lukasolson can you give me a heads up again when this is good for a final review?
💚 Build Succeeded
Metrics [docs]
History
To update your PR or re-run it, just comment with: cc @lukasolson |
Yes Lukas I tested again and seems fine! Also no tests are failing so I feel confident about it :) @davismcphee wdyt? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And it looks the test failures were unrelated, so in that case I'd say we're good to go! LGTM, and thanks for addressing this so quickly 👍
…lastic#169041) ## Summary Creates an `abortSignal` from the request disconnected event that is forwarded to the search strategy. In practice this means that when a bsearch call is disconnected (either due to client disconnect or server timeout) the corresponding call to ES is also cancelled. ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --------- Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> (cherry picked from commit 24fd951)
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…rategy (#169041) (#169420) # Backport This will backport the following commits from `main` to `8.11`: - [[data.search.bsearch] Forward request abortSignal to search strategy (#169041)](#169041) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Lukas Olson","email":"lukas@elastic.co"},"sourceCommit":{"committedDate":"2023-10-19T15:21:37Z","message":"[data.search.bsearch] Forward request abortSignal to search strategy (#169041)\n\n## Summary\r\n\r\nCreates an `abortSignal` from the request disconnected event that is\r\nforwarded to the search strategy. In practice this means that when a\r\nbsearch call is disconnected (either due to client disconnect or server\r\ntimeout) the corresponding call to ES is also cancelled.\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n---------\r\n\r\nCo-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>\r\nCo-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>","sha":"24fd9517cf2983ac92f07a7dea59c2a8956af366","branchLabelMapping":{"^v8.12.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:Search","release_note:fix","Team:DataDiscovery","backport:prev-minor","v8.11.0","v8.12.0","v8.11.1"],"number":169041,"url":"https://github.com/elastic/kibana/pull/169041","mergeCommit":{"message":"[data.search.bsearch] Forward request abortSignal to search strategy (#169041)\n\n## Summary\r\n\r\nCreates an `abortSignal` from the request disconnected event that is\r\nforwarded to the search strategy. In practice this means that when a\r\nbsearch call is disconnected (either due to client disconnect or server\r\ntimeout) the corresponding call to ES is also cancelled.\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n---------\r\n\r\nCo-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>\r\nCo-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>","sha":"24fd9517cf2983ac92f07a7dea59c2a8956af366"}},"sourceBranch":"main","suggestedTargetBranches":["8.11"],"targetPullRequestStates":[{"branch":"8.11","label":"v8.11.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.12.0","labelRegex":"^v8.12.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/169041","number":169041,"mergeCommit":{"message":"[data.search.bsearch] Forward request abortSignal to search strategy (#169041)\n\n## Summary\r\n\r\nCreates an `abortSignal` from the request disconnected event that is\r\nforwarded to the search strategy. In practice this means that when a\r\nbsearch call is disconnected (either due to client disconnect or server\r\ntimeout) the corresponding call to ES is also cancelled.\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n---------\r\n\r\nCo-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>\r\nCo-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>","sha":"24fd9517cf2983ac92f07a7dea59c2a8956af366"}}]}] BACKPORT--> Co-authored-by: Lukas Olson <lukas@elastic.co>
…trategy (elastic#169041)" This reverts commit 24fd951.
…earch strategy (elastic#169041) (elastic#169420)" This reverts commit 29bdcab.
## Summary This reverts commit 24fd951 (#169041). This PR caused additional test flakiness and introduced a situation in which the Kibana server could crash. We already have #168929 to make sure ES|QL queries cannot run longer than 2 mins, so we have some space to revisit the changes in that PR. Resolves #169654. Resolves #169653. Resolves #169652. Resolves #169528. Resolves #169526. Resolves #169459. Resolves #169458. Resolves #169454. Resolves #169434. Resolves #169151. Flaky tests runs: - test/functional/apps/discover/group1/config.ts: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3750 - test/functional/apps/discover/group2/config.ts: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3751 - test/functional/apps/discover/group3/config.ts: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3752 - test/functional/apps/discover/group4/config.ts: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3746 ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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)
## Summary This reverts commit 24fd951 (elastic#169041). This PR caused additional test flakiness and introduced a situation in which the Kibana server could crash. We already have elastic#168929 to make sure ES|QL queries cannot run longer than 2 mins, so we have some space to revisit the changes in that PR. Resolves elastic#169654. Resolves elastic#169653. Resolves elastic#169652. Resolves elastic#169528. Resolves elastic#169526. Resolves elastic#169459. Resolves elastic#169458. Resolves elastic#169454. Resolves elastic#169434. Resolves elastic#169151. Flaky tests runs: - test/functional/apps/discover/group1/config.ts: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3750 - test/functional/apps/discover/group2/config.ts: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3751 - test/functional/apps/discover/group3/config.ts: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3752 - test/functional/apps/discover/group4/config.ts: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3746 ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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 e09e14f)
# Backport This will backport the following commits from `main` to `8.11`: - [Revert #169041 (#169667)](#169667) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Lukas Olson","email":"lukas@elastic.co"},"sourceCommit":{"committedDate":"2023-10-25T23:02:47Z","message":"Revert #169041 (#169667)\n\n## Summary\r\n\r\nThis reverts commit 24fd951 (#169041).\r\n\r\nThis PR caused additional test flakiness and introduced a situation in\r\nwhich the Kibana server could crash. We already have\r\nhttps://github.com//pull/168929 to make sure ES|QL queries\r\ncannot run longer than 2 mins, so we have some space to revisit the\r\nchanges in that PR.\r\n\r\nResolves https://github.com/elastic/kibana/issues/169654.\r\nResolves https://github.com/elastic/kibana/issues/169653.\r\nResolves https://github.com/elastic/kibana/issues/169652.\r\nResolves https://github.com/elastic/kibana/issues/169528.\r\nResolves https://github.com/elastic/kibana/issues/169526.\r\nResolves https://github.com/elastic/kibana/issues/169459.\r\nResolves https://github.com/elastic/kibana/issues/169458.\r\nResolves https://github.com/elastic/kibana/issues/169454.\r\nResolves https://github.com/elastic/kibana/issues/169434.\r\nResolves https://github.com/elastic/kibana/issues/169151.\r\n\r\nFlaky tests runs:\r\n- test/functional/apps/discover/group1/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3750\r\n- test/functional/apps/discover/group2/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3751\r\n- test/functional/apps/discover/group3/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3752\r\n- test/functional/apps/discover/group4/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3746\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"e09e14f3b85cf92a8ec99c5d5c9df0b8ad6e3652","branchLabelMapping":{"^v8.12.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:DataDiscovery","backport:prev-minor","v8.12.0"],"number":169667,"url":"https://github.com/elastic/kibana/pull/169667","mergeCommit":{"message":"Revert #169041 (#169667)\n\n## Summary\r\n\r\nThis reverts commit 24fd951 (#169041).\r\n\r\nThis PR caused additional test flakiness and introduced a situation in\r\nwhich the Kibana server could crash. We already have\r\nhttps://github.com//pull/168929 to make sure ES|QL queries\r\ncannot run longer than 2 mins, so we have some space to revisit the\r\nchanges in that PR.\r\n\r\nResolves https://github.com/elastic/kibana/issues/169654.\r\nResolves https://github.com/elastic/kibana/issues/169653.\r\nResolves https://github.com/elastic/kibana/issues/169652.\r\nResolves https://github.com/elastic/kibana/issues/169528.\r\nResolves https://github.com/elastic/kibana/issues/169526.\r\nResolves https://github.com/elastic/kibana/issues/169459.\r\nResolves https://github.com/elastic/kibana/issues/169458.\r\nResolves https://github.com/elastic/kibana/issues/169454.\r\nResolves https://github.com/elastic/kibana/issues/169434.\r\nResolves https://github.com/elastic/kibana/issues/169151.\r\n\r\nFlaky tests runs:\r\n- test/functional/apps/discover/group1/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3750\r\n- test/functional/apps/discover/group2/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3751\r\n- test/functional/apps/discover/group3/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3752\r\n- test/functional/apps/discover/group4/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3746\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"e09e14f3b85cf92a8ec99c5d5c9df0b8ad6e3652"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v8.12.0","labelRegex":"^v8.12.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/169667","number":169667,"mergeCommit":{"message":"Revert #169041 (#169667)\n\n## Summary\r\n\r\nThis reverts commit 24fd951 (#169041).\r\n\r\nThis PR caused additional test flakiness and introduced a situation in\r\nwhich the Kibana server could crash. We already have\r\nhttps://github.com//pull/168929 to make sure ES|QL queries\r\ncannot run longer than 2 mins, so we have some space to revisit the\r\nchanges in that PR.\r\n\r\nResolves https://github.com/elastic/kibana/issues/169654.\r\nResolves https://github.com/elastic/kibana/issues/169653.\r\nResolves https://github.com/elastic/kibana/issues/169652.\r\nResolves https://github.com/elastic/kibana/issues/169528.\r\nResolves https://github.com/elastic/kibana/issues/169526.\r\nResolves https://github.com/elastic/kibana/issues/169459.\r\nResolves https://github.com/elastic/kibana/issues/169458.\r\nResolves https://github.com/elastic/kibana/issues/169454.\r\nResolves https://github.com/elastic/kibana/issues/169434.\r\nResolves https://github.com/elastic/kibana/issues/169151.\r\n\r\nFlaky tests runs:\r\n- test/functional/apps/discover/group1/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3750\r\n- test/functional/apps/discover/group2/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3751\r\n- test/functional/apps/discover/group3/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3752\r\n- test/functional/apps/discover/group4/config.ts:\r\nhttps://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3746\r\n\r\n### Checklist\r\n\r\nDelete any items that are not applicable to this PR.\r\n\r\n- [ ] Any text added follows [EUI's writing\r\nguidelines](https://elastic.github.io/eui/#/guidelines/writing), uses\r\nsentence case text and includes [i18n\r\nsupport](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)\r\n- [ ]\r\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\r\nwas added for features that require explanation or tutorials\r\n- [ ] [Unit or functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere updated or added to match the most common scenarios\r\n- [ ] Any UI touched in this PR is usable by keyboard only (learn more\r\nabout [keyboard accessibility](https://webaim.org/techniques/keyboard/))\r\n- [ ] Any UI touched in this PR does not create any new axe failures\r\n(run axe in browser:\r\n[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),\r\n[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))\r\n- [ ] If a plugin configuration key changed, check if it needs to be\r\nallowlisted in the cloud and added to the [docker\r\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\r\n- [ ] This renders correctly on smaller devices using a responsive\r\nlayout. (You can test this [in your\r\nbrowser](https://www.browserstack.com/guide/responsive-testing-on-local-server))\r\n- [ ] This was checked for [cross-browser\r\ncompatibility](https://www.elastic.co/support/matrix#matrix_browsers)\r\n\r\n\r\n### Risk Matrix\r\n\r\nDelete this section if it is not applicable to this PR.\r\n\r\nBefore closing this PR, invite QA, stakeholders, and other developers to\r\nidentify risks that should be tested prior to the change/feature\r\nrelease.\r\n\r\nWhen forming the risk matrix, consider some of the following examples\r\nand how they may potentially impact the change:\r\n\r\n| Risk | Probability | Severity | Mitigation/Notes |\r\n\r\n|---------------------------|-------------|----------|-------------------------|\r\n| Multiple Spaces—unexpected behavior in non-default Kibana Space.\r\n| Low | High | Integration tests will verify that all features are still\r\nsupported in non-default Kibana Space and when user switches between\r\nspaces. |\r\n| Multiple nodes—Elasticsearch polling might have race conditions\r\nwhen multiple Kibana nodes are polling for the same tasks. | High | Low\r\n| Tasks are idempotent, so executing them multiple times will not result\r\nin logical error, but will degrade performance. To test for this case we\r\nadd plenty of unit tests around this logic and document manual testing\r\nprocedure. |\r\n| Code should gracefully handle cases when feature X or plugin Y are\r\ndisabled. | Medium | High | Unit tests will verify that any feature flag\r\nor plugin combination still results in our service operational. |\r\n| [See more potential risk\r\nexamples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) |\r\n\r\n\r\n### For maintainers\r\n\r\n- [ ] This was checked for breaking API changes and was [labeled\r\nappropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)","sha":"e09e14f3b85cf92a8ec99c5d5c9df0b8ad6e3652"}}]}] BACKPORT--> Co-authored-by: Lukas Olson <lukas@elastic.co>
…lastic#169041) ## Summary Creates an `abortSignal` from the request disconnected event that is forwarded to the search strategy. In practice this means that when a bsearch call is disconnected (either due to client disconnect or server timeout) the corresponding call to ES is also cancelled. ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) --------- Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
…170041) ## Summary Attempt to resurrect #169041. Previously flaky tests: * group1: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3797 * group2: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3798 * group3: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3799 * group4: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/3800 ### Checklist Delete any items that are not applicable to this PR. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/)) - [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US)) - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server)) - [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers) ### Risk Matrix Delete this section if it is not applicable to this PR. Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release. When forming the risk matrix, consider some of the following examples and how they may potentially impact the change: | Risk | Probability | Severity | Mitigation/Notes | |---------------------------|-------------|----------|-------------------------| | Multiple Spaces—unexpected behavior in non-default Kibana Space. | Low | High | Integration tests will verify that all features are still supported in non-default Kibana Space and when user switches between spaces. | | Multiple nodes—Elasticsearch polling might have race conditions when multiple Kibana nodes are polling for the same tasks. | High | Low | Tasks are idempotent, so executing them multiple times will not result in logical error, but will degrade performance. To test for this case we add plenty of unit tests around this logic and document manual testing procedure. | | Code should gracefully handle cases when feature X or plugin Y are disabled. | Medium | High | Unit tests will verify that any feature flag or plugin combination still results in our service operational. | | [See more potential risk examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx) | ### 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) --------- Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
it shouldn’t be needed since elastic#169041 is fixed
Summary
Creates an
abortSignal
from the request disconnected event that is forwarded to the search strategy. In practice this means that when a bsearch call is disconnected (either due to client disconnect or server timeout) the corresponding call to ES is also cancelled.Checklist
Delete any items that are not applicable to this PR.