Skip to content

Fix isErrorResponse when cluster details are provided - #166544

Merged
davismcphee merged 9 commits into
elastic:8.10from
lukasolson:fix/isErrorResponse8.10
Sep 18, 2023
Merged

davismcphee merged 9 commits into
elastic:8.10from
lukasolson:fix/isErrorResponse8.10

Conversation

@lukasolson

@lukasolson lukasolson commented Sep 14, 2023 •

Copy link
Copy Markdown
Contributor

Summary

Fixes #166528.

Checklist

Delete any items that are not applicable to this PR.

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

For maintainers

@lukasolson lukasolson self-assigned this Sep 14, 2023

@thomasneirynck thomasneirynck left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quick 2c.

I can verify this fixes the issue for CCS deployments, showing the expected warning

image

Without this fix, in 8.10, this shows an error.
image

Comment thread src/plugins/data/common/search/utils.ts Outdated
return (
!response ||
!response.rawResponse ||
(!response.isRunning && !!response.isPartial && !response.rawResponse?._clusters?.details)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for reference:

This basically determines that ES will handle the isPartial flag differently for CCS?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I should add a comment there. Basically, the behavior for CCS with ccs_minimize_roundtrips=true is to set is_partial to true if the search is complete but there are some shard failures (and thus partial results), then have details about the failures inside the _clusters.details section. This will also likely be the behavior of CCS with ccs_minimize_roundtrips=false and non-CCS after elastic/elasticsearch#98913 is resolved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added some comments to the code in 0859897.

@thomasneirynck thomasneirynck Sep 20, 2023 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will also likely be the behavior of CCS with ccs_minimize_roundtrips=false

Chatted offline with @quux00 and he confirmed this is correct for the non-CCS situation (this work is still pending), but already merged for the CSS-part in 8.11/main.

@lukasolson lukasolson added Team:DataDiscovery Discover, search (data plugin and KQL), data views, saved searches. For ES|QL, use Team:ES|QL. t// v8.1.0 Feature:Cross Cluster Search Feature:Search Querying infrastructure in Kibana Project:AsyncSearch Background search, partial results, async search services. v8.10.0 v8.10.1 and removed v8.1.0 v8.10.0 labels Sep 14, 2023
@lukasolson
lukasolson marked this pull request as ready for review September 14, 2023 23:35
@elasticmachine

Copy link
Copy Markdown
Contributor

Pinging @elastic/kibana-data-discovery (Team:DataDiscovery)

@davismcphee davismcphee left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing this! I confirmed that without the fix in 8.10, an error is shown. And with the fix in this PR, a warning is shown that matches the local cluster behaviour.

Local:
local

Remote:
remote

We should try to get confirmation from someone in Security who encountered the issue too if possible, but I don't want to hold hold this up so I'm approving now for when we're ready.

@davismcphee davismcphee left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, I didn't realize the build failed before submitting my review... I guess we'll need to investigate what's going on there first.

@kertal

kertal commented Sep 15, 2023

Copy link
Copy Markdown
Member

@elasticmachine merge upstream

@thomasneirynck

Copy link
Copy Markdown
Contributor

@elasticmachine merge upstream

@thomasneirynck

Copy link
Copy Markdown
Contributor

cc @yuliacech @stephmilovic Would be great if you could take a look at this as well from Security-side. Thx!

@kibana-ci

Copy link
Copy Markdown

💚 Build Succeeded

Metrics [docs]

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
data 2576 2574 -2

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
data 404.5KB 404.6KB +133.0B

History

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

cc @lukasolson

Comment thread src/plugins/data/common/search/utils.ts
@sophiec20

sophiec20 commented Sep 18, 2023 •

Copy link
Copy Markdown
Contributor

Is there risk this might have impact for the visualizations team?

And is there an impact for CSS if the remote clusters are still 8.9.x and local is 8.10.x ?

@kertal

kertal commented Sep 18, 2023 •

Copy link
Copy Markdown
Member

Is there risk this might have impact for the visualizations team?

I don't think there is but @elastic/kibana-visualizations will know better

@thomasneirynck

Copy link
Copy Markdown
Contributor

@elasticmachine merge upstream

@stephmilovic stephmilovic left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This clears the partial results error in Security Solution. Thanks for the quick fix, LGTM!

@timductive

timductive commented Sep 18, 2023 •

Copy link
Copy Markdown
Member

And is there an impact for CSS if the remote clusters are still 8.9.x and local is 8.10.x?

@lukasolson I want to make sure we don't lose sophie's question here, have we validated this with clusters on different versions?

@lukasolson

Copy link
Copy Markdown
Contributor Author

And is there an impact for CSS if the remote clusters are still 8.9.x and local is 8.10.x?

I just verified that this fix works for this scenario as well (and that it is also broken in this scenario without this fix).

@drewdaemon drewdaemon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR resolves the issue for visualizations as well

Lens editor

Before

Screenshot 2023-09-18 at 11 40 37 AM

After

Screenshot 2023-09-18 at 11 47 37 AM

TSVB

Before

Screenshot 2023-09-18 at 12 03 37 PM

After

Screenshot 2023-09-18 at 12 04 48 PM

Aggs-based

Before

Screenshot 2023-09-18 at 11 42 35 AM

After

Screenshot 2023-09-18 at 11 48 54 AM

@davismcphee
davismcphee merged commit d317259 into elastic:8.10 Sep 18, 2023
lukasolson added a commit to lukasolson/kibana that referenced this pull request Sep 18, 2023
…ic#166544)

## Summary

Fixes elastic#166528.

### 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: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Comment thread src/plugins/data/common/search/utils.ts
lukasolson added a commit that referenced this pull request Sep 21, 2023
## Summary

Cherry picks #166544 into main.

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature:Cross Cluster Search Feature:Search Querying infrastructure in Kibana Project:AsyncSearch Background search, partial results, async search services. release_note:fix Team:DataDiscovery Discover, search (data plugin and KQL), data views, saved searches. For ES|QL, use Team:ES|QL. t// v8.10.2

Projects

None yet

Development

Successfully merging this pull request may close these issues.