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.x] [Security Solution] - fixing infinite look on host flyout panel due to lack of memoization (#204999) #205104

Merged
merged 1 commit into from
Dec 23, 2024

Conversation

kibanamachine
Copy link
Contributor

Backport

This will backport the following commits from main to 8.x:

Questions ?

Please refer to the Backport tool documentation

…o lack of memoization (elastic#204999)

## Summary

This PR fixes [an
issue](elastic/security-team#11424) raised
recently where opening a preview panel for a host of user on top of a
flyout already showing a host or user was getting the UI stuck into an
infinite loop.

While we found a few ways to fix the issue - primarily adding
memoization to the UI components within the HostPanel and UserPanel, the
approach in this PR fixes the issue at a more root level.

Infinite loop behavior

https://github.com/user-attachments/assets/92cb60ad-7801-43ec-a247-8943e091b6a8

Issue fixed

https://github.com/user-attachments/assets/30b30b42-f32e-4c02-9407-9d0f671d7216

This fix should also potentially bring some performance improvement to
all the components that are using the hook (we have a few).

(cherry picked from commit 96264d2)
@kibanamachine kibanamachine merged commit 3d88e86 into elastic:8.x Dec 23, 2024
11 checks passed
@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
securitySolution 18.5MB 18.5MB +148.0B

cc @PhilippeOberti

PhilippeOberti added a commit that referenced this pull request Jan 6, 2025
…l due to lack of memoization (#204999) (#205624)

# Backport

This will backport the following commits from `main` to `8.17`:
- [[Security Solution] - fixing infinite look on host flyout panel due
to lack of memoization
(#204999)](#204999)

<!--- Backport version: 8.9.8 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Philippe
Oberti","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-12-23T15:55:30Z","message":"[Security
Solution] - fixing infinite look on host flyout panel due to lack of
memoization (#204999)\n\n## Summary\r\n\r\nThis PR fixes
[an\r\nissue](elastic/security-team#11424)
raised\r\nrecently where opening a preview panel for a host of user on
top of a\r\nflyout already showing a host or user was getting the UI
stuck into an\r\ninfinite loop.\r\n\r\nWhile we found a few ways to fix
the issue - primarily adding\r\nmemoization to the UI components within
the HostPanel and UserPanel, the\r\napproach in this PR fixes the issue
at a more root level.\r\n\r\nInfinite loop
behavior\r\n\r\n\r\nhttps://github.com/user-attachments/assets/92cb60ad-7801-43ec-a247-8943e091b6a8\r\n\r\nIssue
fixed\r\n\r\n\r\nhttps://github.com/user-attachments/assets/30b30b42-f32e-4c02-9407-9d0f671d7216\r\n\r\nThis
fix should also potentially bring some performance improvement to\r\nall
the components that are using the hook (we have a
few).","sha":"96264d29237f0b7cfc8c651393f12d248f0d84e0","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["backport","release_note:skip","v9.0.0","Team:Threat
Hunting:Investigations","backport:version","v8.18.0"],"number":204999,"url":"https://github.com/elastic/kibana/pull/204999","mergeCommit":{"message":"[Security
Solution] - fixing infinite look on host flyout panel due to lack of
memoization (#204999)\n\n## Summary\r\n\r\nThis PR fixes
[an\r\nissue](elastic/security-team#11424)
raised\r\nrecently where opening a preview panel for a host of user on
top of a\r\nflyout already showing a host or user was getting the UI
stuck into an\r\ninfinite loop.\r\n\r\nWhile we found a few ways to fix
the issue - primarily adding\r\nmemoization to the UI components within
the HostPanel and UserPanel, the\r\napproach in this PR fixes the issue
at a more root level.\r\n\r\nInfinite loop
behavior\r\n\r\n\r\nhttps://github.com/user-attachments/assets/92cb60ad-7801-43ec-a247-8943e091b6a8\r\n\r\nIssue
fixed\r\n\r\n\r\nhttps://github.com/user-attachments/assets/30b30b42-f32e-4c02-9407-9d0f671d7216\r\n\r\nThis
fix should also potentially bring some performance improvement to\r\nall
the components that are using the hook (we have a
few).","sha":"96264d29237f0b7cfc8c651393f12d248f0d84e0"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/204999","number":204999,"mergeCommit":{"message":"[Security
Solution] - fixing infinite look on host flyout panel due to lack of
memoization (#204999)\n\n## Summary\r\n\r\nThis PR fixes
[an\r\nissue](elastic/security-team#11424)
raised\r\nrecently where opening a preview panel for a host of user on
top of a\r\nflyout already showing a host or user was getting the UI
stuck into an\r\ninfinite loop.\r\n\r\nWhile we found a few ways to fix
the issue - primarily adding\r\nmemoization to the UI components within
the HostPanel and UserPanel, the\r\napproach in this PR fixes the issue
at a more root level.\r\n\r\nInfinite loop
behavior\r\n\r\n\r\nhttps://github.com/user-attachments/assets/92cb60ad-7801-43ec-a247-8943e091b6a8\r\n\r\nIssue
fixed\r\n\r\n\r\nhttps://github.com/user-attachments/assets/30b30b42-f32e-4c02-9407-9d0f671d7216\r\n\r\nThis
fix should also potentially bring some performance improvement to\r\nall
the components that are using the hook (we have a
few).","sha":"96264d29237f0b7cfc8c651393f12d248f0d84e0"}},{"branch":"8.x","label":"v8.18.0","labelRegex":"^v8.18.0$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/205104","number":205104,"state":"MERGED","mergeCommit":{"sha":"3d88e86b0787aa3faaa8c2bffd04b31d53d0008f","message":"[8.x]
[Security Solution] - fixing infinite look on host flyout panel due to
lack of memoization (#204999) (#205104)\n\n# Backport\n\nThis will
backport the following commits from `main` to `8.x`:\n- [[Security
Solution] - fixing infinite look on host flyout panel due\nto lack of
memoization\n(#204999)](https://github.com/elastic/kibana/pull/204999)\n\n<!---
Backport version: 9.4.3 -->\n\n### Questions ?\nPlease refer to the
[Backport
tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT
[{\"author\":{\"name\":\"Philippe\nOberti\",\"email\":\"[email protected]\"},\"sourceCommit\":{\"committedDate\":\"2024-12-23T15:55:30Z\",\"message\":\"[Security\nSolution]
- fixing infinite look on host flyout panel due to lack of\nmemoization
(#204999)\\n\\n## Summary\\r\\n\\r\\nThis PR
fixes\n[an\\r\\nissue](https://github.com/elastic/security-team/issues/11424)\nraised\\r\\nrecently
where opening a preview panel for a host of user on\ntop of
a\\r\\nflyout already showing a host or user was getting the UI\nstuck
into an\\r\\ninfinite loop.\\r\\n\\r\\nWhile we found a few ways to
fix\nthe issue - primarily adding\\r\\nmemoization to the UI components
within\nthe HostPanel and UserPanel, the\\r\\napproach in this PR fixes
the issue\nat a more root level.\\r\\n\\r\\nInfinite
loop\nbehavior\\r\\n\\r\\n\\r\\nhttps://github.com/user-attachments/assets/92cb60ad-7801-43ec-a247-8943e091b6a8\\r\\n\\r\\nIssue\nfixed\\r\\n\\r\\n\\r\\nhttps://github.com/user-attachments/assets/30b30b42-f32e-4c02-9407-9d0f671d7216\\r\\n\\r\\nThis\nfix
should also potentially bring some performance improvement
to\\r\\nall\nthe components that are using the hook (we have
a\nfew).\",\"sha\":\"96264d29237f0b7cfc8c651393f12d248f0d84e0\",\"branchLabelMapping\":{\"^v9.0.0$\":\"main\",\"^v8.18.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"backport\",\"release_note:skip\",\"v9.0.0\",\"Team:Threat\nHunting:Investigations\",\"backport:version\",\"v8.18.0\"],\"title\":\"[Security\nSolution]
- fixing infinite look on host flyout panel due to lack
of\nmemoization\",\"number\":204999,\"url\":\"https://github.com/elastic/kibana/pull/204999\",\"mergeCommit\":{\"message\":\"[Security\nSolution]
- fixing infinite look on host flyout panel due to lack of\nmemoization
(#204999)\\n\\n## Summary\\r\\n\\r\\nThis PR
fixes\n[an\\r\\nissue](https://github.com/elastic/security-team/issues/11424)\nraised\\r\\nrecently
where opening a preview panel for a host of user on\ntop of
a\\r\\nflyout already showing a host or user was getting the UI\nstuck
into an\\r\\ninfinite loop.\\r\\n\\r\\nWhile we found a few ways to
fix\nthe issue - primarily adding\\r\\nmemoization to the UI components
within\nthe HostPanel and UserPanel, the\\r\\napproach in this PR fixes
the issue\nat a more root level.\\r\\n\\r\\nInfinite
loop\nbehavior\\r\\n\\r\\n\\r\\nhttps://github.com/user-attachments/assets/92cb60ad-7801-43ec-a247-8943e091b6a8\\r\\n\\r\\nIssue\nfixed\\r\\n\\r\\n\\r\\nhttps://github.com/user-attachments/assets/30b30b42-f32e-4c02-9407-9d0f671d7216\\r\\n\\r\\nThis\nfix
should also potentially bring some performance improvement
to\\r\\nall\nthe components that are using the hook (we have
a\nfew).\",\"sha\":\"96264d29237f0b7cfc8c651393f12d248f0d84e0\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[\"8.x\"],\"targetPullRequestStates\":[{\"branch\":\"main\",\"label\":\"v9.0.0\",\"branchLabelMappingKey\":\"^v9.0.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/204999\",\"number\":204999,\"mergeCommit\":{\"message\":\"[Security\nSolution]
- fixing infinite look on host flyout panel due to lack of\nmemoization
(#204999)\\n\\n## Summary\\r\\n\\r\\nThis PR
fixes\n[an\\r\\nissue](https://github.com/elastic/security-team/issues/11424)\nraised\\r\\nrecently
where opening a preview panel for a host of user on\ntop of
a\\r\\nflyout already showing a host or user was getting the UI\nstuck
into an\\r\\ninfinite loop.\\r\\n\\r\\nWhile we found a few ways to
fix\nthe issue - primarily adding\\r\\nmemoization to the UI components
within\nthe HostPanel and UserPanel, the\\r\\napproach in this PR fixes
the issue\nat a more root level.\\r\\n\\r\\nInfinite
loop\nbehavior\\r\\n\\r\\n\\r\\nhttps://github.com/user-attachments/assets/92cb60ad-7801-43ec-a247-8943e091b6a8\\r\\n\\r\\nIssue\nfixed\\r\\n\\r\\n\\r\\nhttps://github.com/user-attachments/assets/30b30b42-f32e-4c02-9407-9d0f671d7216\\r\\n\\r\\nThis\nfix
should also potentially bring some performance improvement
to\\r\\nall\nthe components that are using the hook (we have
a\nfew).\",\"sha\":\"96264d29237f0b7cfc8c651393f12d248f0d84e0\"}},{\"branch\":\"8.x\",\"label\":\"v8.18.0\",\"branchLabelMappingKey\":\"^v8.18.0$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"}]}]\nBACKPORT-->\n\nCo-authored-by:
Philippe Oberti <[email protected]>"}}]}] BACKPORT-->
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