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

ui: overload dashboard fails to render on large clusters #101377

Closed
dhartunian opened this issue Apr 12, 2023 · 0 comments · Fixed by #101952
Closed

ui: overload dashboard fails to render on large clusters #101377

dhartunian opened this issue Apr 12, 2023 · 0 comments · Fixed by #101952
Assignees
Labels
A-observability-inf C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.

Comments

@dhartunian
Copy link
Collaborator

dhartunian commented Apr 12, 2023

On a cluster with 99 nodes, the overload dashboard failed to render with a stack overflow error in the javascript console. It was unclear what specifically caused this to happen and steps need to be taken to attempt to reproduce this error on a demo or test cluster.

Screenshot 2023-04-06 at 21 47 40

Screenshot 2023-04-06 at 21 47 20

Jira issue: CRDB-26919

Epic: CRDB-25476

@dhartunian dhartunian added C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. T-observability-inf labels Apr 12, 2023
@zachlite zachlite self-assigned this Apr 20, 2023
craig bot pushed a commit that referenced this issue Apr 20, 2023
101937: catalog: utilize scans for a large number of descriptors r=fqazi a=fqazi

Previously, the catalog descriptor would fetch descriptors via point lookups using Get when scanning large batches of descriptors. This was further extended to also look up ZoneConfigs and comments in a similar way. Recently, we we started seeing regression on the Django test suite involving the pg_catalog tables, which tend to do read large number of descriptors, likely linked to extra overhead linked to both comments and zone configs in 23.1. To address this, this patch ill now start using scans for runs of descriptor IDs for batch scans which reduces the overall cost of fetching a large number of descriptors hiding this cost.

Fixes: #100871

Release note: None

101943: build,release: provide way to inject build tag override, use in MAPB r=rail a=rickystewart

When we build nightly builds, we build them in "release" configuration. Because we do this, the build tag reported by these binaries from `cockroach version` has been identical to that of an actual release binary, which is very confusing. Here we update the script to build these nightlies (`make-and-publish-build-artifacts.sh`) to inject an appropriate, identifiable build tag.

It is probably wrong that we are building these nightlies as if they were "releases". We'll follow up with work to fix this and refine the build tags further.

Closes #100532.
Epic: None
Release note (build change): Update reported `Build Tag` for nightly (non-release) builds

101944: sem/tree: remove TODO r=mgartner a=mgartner

This commit removes a TODO that was addressed by #96045.

Epic: None

Release note: None

101952: ui: fix linegraph render for large clusters r=zachlite a=zachlite

We were feeding `Math.min` and `Math.max` very large arrays (length equal to ~10e7). These functions take variadic arguments, and the runtime can't handle that many arguments. As a result we blow the stack, causing uncaught range errors.

Instead, we'll use lodash min and max which are not variadic. Resolves #101377 Epic: None
Release note: None


Reproduction and Fix demonstrated on the command line:

<img width="722" alt="Screenshot 2023-04-20 at 4 56 41 PM" src="https://user-images.githubusercontent.com/5423191/233486016-fd740a98-9a0d-4fef-a6d8-67e9cb4e318e.png">


Co-authored-by: Faizan Qazi <faizan@cockroachlabs.com>
Co-authored-by: Ricky Stewart <rickybstewart@gmail.com>
Co-authored-by: Marcus Gartner <marcus@cockroachlabs.com>
Co-authored-by: Zach Lite <zach@cockroachlabs.com>
@craig craig bot closed this as completed in 6949cb8 Apr 20, 2023
blathers-crl bot pushed a commit that referenced this issue Apr 20, 2023
We were feeding `Math.min` and `Math.max` very large arrays
(length equal to ~10e7). These functions take variadic arguments,
and the runtime can't handle that many arguments. As a result we
blow the stack, causing uncaught range errors.

Instead, we'll use lodash min and max which are not variadic.
Resolves #101377
Epic: None
Release note: None
blathers-crl bot pushed a commit that referenced this issue Apr 20, 2023
We were feeding `Math.min` and `Math.max` very large arrays
(length equal to ~10e7). These functions take variadic arguments,
and the runtime can't handle that many arguments. As a result we
blow the stack, causing uncaught range errors.

Instead, we'll use lodash min and max which are not variadic.
Resolves #101377
Epic: None
Release note: None
blathers-crl bot pushed a commit that referenced this issue Apr 20, 2023
We were feeding `Math.min` and `Math.max` very large arrays
(length equal to ~10e7). These functions take variadic arguments,
and the runtime can't handle that many arguments. As a result we
blow the stack, causing uncaught range errors.

Instead, we'll use lodash min and max which are not variadic.
Resolves #101377
Epic: None
Release note: None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-observability-inf C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants