Skip to content

Commit

Permalink
[8.11] Revert #169041 (#169667) (#169897)
Browse files Browse the repository at this point in the history
# 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&mdash;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&mdash;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&mdash;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&mdash;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&mdash;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&mdash;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>
  • Loading branch information
kibanamachine and lukasolson authored Oct 26, 2023
1 parent 84a6938 commit 302efb3
Show file tree
Hide file tree
Showing 4 changed files with 3 additions and 77 deletions.
4 changes: 1 addition & 3 deletions src/plugins/data/common/search/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@ export const isAbortResponse = (response?: IKibanaSearchResponse) => {
/**
* @returns true if request is still running
*/
export const isRunningResponse = (response?: IKibanaSearchResponse) => {
return response?.isRunning ?? false;
};
export const isRunningResponse = (response?: IKibanaSearchResponse) => response?.isRunning ?? false;

export const getUserTimeZone = (
getConfig: AggTypesDependencies['getConfig'],
Expand Down
4 changes: 1 addition & 3 deletions src/plugins/data/server/search/routes/bsearch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import { catchError } from 'rxjs/operators';
import { BfetchServerSetup } from '@kbn/bfetch-plugin/server';
import type { ExecutionContextSetup } from '@kbn/core/server';
import apm from 'elastic-apm-node';
import { getRequestAbortedSignal } from '../..';
import {
IKibanaSearchRequest,
IKibanaSearchResponse,
Expand All @@ -29,7 +28,6 @@ export function registerBsearchRoute(
IKibanaSearchResponse
>('/internal/bsearch', (request) => {
const search = getScoped(request);
const abortSignal = getRequestAbortedSignal(request.events.aborted$);
return {
/**
* @param requestOptions
Expand All @@ -41,7 +39,7 @@ export function registerBsearchRoute(
apm.addLabels(executionContextService.getAsLabels());

return firstValueFrom(
search.search(requestData, { ...restOptions, abortSignal }).pipe(
search.search(requestData, restOptions).pipe(
catchError((err) => {
// Re-throw as object, to get attributes passed to the client
// eslint-disable-next-line no-throw-literal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,38 +259,6 @@ describe('ES search strategy', () => {

expect(mockApiCaller).toBeCalledTimes(0);
});

it('should delete when aborted', async () => {
mockSubmitCaller.mockResolvedValueOnce({
...mockAsyncResponse,
body: {
...mockAsyncResponse.body,
is_running: true,
},
});

const params = { index: 'logstash-*', body: { query: {} } };
const esSearch = await enhancedEsSearchStrategyProvider(
mockLegacyConfig$,
mockSearchConfig,
mockLogger
);
const abortController = new AbortController();
const abortSignal = abortController.signal;

// Abort after an incomplete first response is returned
setTimeout(() => abortController.abort(), 100);

let err: KbnServerError | undefined;
try {
await esSearch.search({ params }, { abortSignal }, mockDeps).toPromise();
} catch (e) {
err = e;
}
expect(mockSubmitCaller).toBeCalled();
expect(err).not.toBeUndefined();
expect(mockDeleteCaller).toBeCalled();
});
});

describe('with sessionId', () => {
Expand Down Expand Up @@ -398,44 +366,6 @@ describe('ES search strategy', () => {
expect(request).toHaveProperty('wait_for_completion_timeout');
expect(request).not.toHaveProperty('keep_alive');
});

it('should not delete a saved session when aborted', async () => {
mockSubmitCaller.mockResolvedValueOnce({
...mockAsyncResponse,
body: {
...mockAsyncResponse.body,
is_running: true,
},
});

const params = { index: 'logstash-*', body: { query: {} } };
const esSearch = await enhancedEsSearchStrategyProvider(
mockLegacyConfig$,
mockSearchConfig,
mockLogger
);
const abortController = new AbortController();
const abortSignal = abortController.signal;

// Abort after an incomplete first response is returned
setTimeout(() => abortController.abort(), 100);

let err: KbnServerError | undefined;
try {
await esSearch
.search(
{ params },
{ abortSignal, sessionId: '1', isSearchStored: true, isStored: true },
mockDeps
)
.toPromise();
} catch (e) {
err = e;
}
expect(mockSubmitCaller).toBeCalled();
expect(err).not.toBeUndefined();
expect(mockDeleteCaller).not.toBeCalled();
});
});

it('throws normalized error if ResponseError is thrown', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ export const enhancedEsSearchStrategyProvider = (
};

const cancel = async () => {
if (id && !options.isStored) {
if (id) {
await cancelAsyncSearch(id, esClient);
}
};
Expand Down

0 comments on commit 302efb3

Please sign in to comment.