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
The softprops/action-gh-release action may fail silently or complete with the exit code 137 (when debug logging is enabled) when there are numerous large release assets:
##[debug]Node Action run completed with exit code 137
##[debug]Finishing: Upload release assets
The exit code 137 is likely due to the node process, in which the release action runs, being killed because of the system running out of memory.
Looking at the softprops/action-gh-release implementation, this seems to make sense because it uses the readFileSync function to read the full content of the release assets into memory (instead of using, for instance, a stream):
The action should use Stream to read the content of the release assets.
Note that the node-fetch module supports Stream, so the file stream should be passed to it instead of an object containing the full content of the release asset loaded into it.
Also just noting that the GitHub Actions runner is now on Node 16, so it would be good to update the action to use it and take advantage of the improved stream support.
Problem statement
The
softprops/action-gh-release
action may fail silently or complete with the exit code 137 (when debug logging is enabled) when there are numerous large release assets:The exit code 137 is likely due to the node process, in which the release action runs, being killed because of the system running out of memory.
Looking at the
softprops/action-gh-release
implementation, this seems to make sense because it uses thereadFileSync
function to read the full content of the release assets into memory (instead of using, for instance, a stream):action-gh-release/src/github.ts
Line 131 in cd28b0f
Also note that the action attempts to read all release assets into the the memory at once, making this problem much worse:
Suggested solution
The action should use
Stream
to read the content of the release assets.Note that the
node-fetch
module supportsStream
, so the file stream should be passed to it instead of an object containing the full content of the release asset loaded into it.Additional context
Reported in zephyrproject-rtos/sdk-ng#520 (comment)
The text was updated successfully, but these errors were encountered: