You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on May 3, 2024. It is now read-only.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
What is the communication plan for this change?
This is existing functionality just refactored so not planning on communication as I don't think it's needed? (though now I'm realizing the commit message should have been "refactor" instead of "feat")
Does any documentation need to be updated or added to account for this change? If so was it done already?
I don't think so.
What is the motivation for this change?
This simplifies installs and reduces the chance of dependency installation failures as the API used is now part of Node.JS core. Issues should be caught before releases and if there are issues, they will likely be faster to be fixed.
Should these changes also be applied to a maintenance branch or any other long lived branch?
No, this new API was added in Node.JS v11.13.0 and thus is not applicable for one-app v4 which runs on Node.JS 10.x
How was this change tested?
Unit and integration tests, also loaded the heap snapshot into Chrome's DevTools to ensure they are usable (not corrupted)
Does this change require cross browser checks? Why or why not?
No, this is not something exposed to browsers (note: "The JSON schema is undocumented and specific to the V8 engine, and may change from one version of V8 to the next." https://nodejs.org/docs/latest-v12.x/api/v8.html#v8_v8_getheapsnapshot)
Does this change require a performance test prior to merging? Why or why not?
V8 has changed it's internals where it has multiple threads. Previously heapdumps would pause/stop the world so the existing operational model is to stop routing traffic to a container before taking the heapdump. This new method may minimize that delay but isn't generally part of a performance test.
Could this be considered a breaking change? Why or why not?
No, the public interface is the same (still uses the SIGUSR2 signal), the log messages are similar, as is the location the files are written to.
Does the change impact caching?
No.
Does the change impact HTTP headers?
No.
Does the change have any new infrastructure requirements?
No.
Does the change affect other versions of the app?
No.
Does the change require additional environment variables?
No. There are new runtime CLI options (https://nodejs.org/api/report.html) that may use the SIGUSR2 signal but they are experimental, can use a different signal, and we log a warning when they are in use.
What is the impact to developers using the app?
None, they can still get heapdumps the same way if they are investigating memory leaks.
What is the change to the size of assets?
None.
Should integration tests be added to protect against future regressions on this change?
Integration tests could have been added (and maybe should be for v4 as the input and output are the same) in a different PR. In this case integration tests are included in this PR.
less than the original 20s so seems like a setup issue in Travis? maybe someone could check this out locally to sanity check my findings
[edit]
latest run locally in the report I see
writes a heapdump to /tmp on a SIGUSR2 signal, passed in 3.43s
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
None yet
7 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
replaces binary module dependency