[No QA] Make GitUtils use spawn/stream instead of execSync/buffer #9891
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.
Details
This fixes an error we've never seen before with our deploy process: https://expensify.slack.com/archives/C03V9A4TB/p1657736346352819
The problem is that
execSync
uses a buffer with a 200kb limit, and if the command's output exceeds that amount then it will 🤮This solution uses
spawn
, which uses an output stream instead of a buffer, so we don't have to worry about running out of buffer space. Got the solution from https://stackoverflow.com/questions/63796633/spawnsync-bin-sh-enobufsAlternate solution: Use increase the buffer size. But then there's no telling if we'd run into this problem in the future if we had a larger commit volume / more time between deploys.
Fixed Issues
$ n/a – broken deploys
Tests