-
Notifications
You must be signed in to change notification settings - Fork 27
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
error: fork/exec /bin/sh: argument list too long #285
Comments
I was only able to work around this by This is the reason, also I am heading towards always using |
@antdking pointed me to #167 in Slack, thanks! I think as a first change, it just needs to become opt-out. I think it should be opt-in long term because it's very surprising and I'm not sure it can be reliably detected - and even if it can it's presumably going to require a pile of platform specific code. Also, it balloons the state file for something most probably don't depend on. Personally, I'd consider deprecating it; it would seam preferable for users to immediately parse stdout into assets or something else to track after create, not at delete time. Stderr is for error messages and diagnostics, it doesn't match the spirit of the stream to implicitly store for future parsing. |
fixes #285 --------- Co-authored-by: Your Name <[email protected]> Co-authored-by: Matthew Jeffryes <[email protected]> Co-authored-by: Ian Wahbe <[email protected]>
@iwahbe I've just encountered this issue in If I'm not missing anything, is this issue the right place to ask nicely for opt-out support for |
I originally authored the fix and you're right, this only deals with local.command as this is what I used and had the ability to test easily. I have 0 clue how to use the remote functionality but if you provide a minimal example to use it, I can give a shot at creating a PR with the fix |
CC @thomas11 |
Thank you @julsemaan, a PR would be awesome! At first glance it seems the code for Possibly we can share some code between local and remote but we can look at that later. |
Opened a PR: #451 It's lacking a test though as I couldn't mock things appropriately for remote.Command |
#451) # Context At the moment, stdout and stderr of previous runs are passed as environment variables on future invocations. When stdout or stderr is too large, this cause an error. # Proposed change #355 fixed it for local commands, this fixed it for remote commands. See #285 for full details on the issue See this comment for details around local vs remote functionality : #285 (comment) --------- Co-authored-by: Thomas Kappler <[email protected]> Co-authored-by: Martin Lehmann <[email protected]>
This issue was closed but I don't understand your answers. I used |
Hi @MLOpsGuy, the previous behavior that can lead to this error is still the default. You need to set |
Thanks @thomas11, I really appreciate your help |
What happened?
Running
pulumi up
on an existing stack on Linux fails.Poking at the code, I see this is because of PULUMI_COMMAND_STDOUT/PULUMI_COMMAND_STDERR and the previous run containing rather long output.
pulumi-command/provider/pkg/provider/local/commandOutputs.go
Lines 73 to 78 in 7c5c4bd
Since I don't use this feature and I don't always have the option of adjusting limits, I'd like an option to turn it off. Furthermore, I'd prefer if the option could be made off by default as well, as I don't generally need this information in state files.
Example
strace
From log above, we can tell our command is not particularly long, the environment is massive.
Output of
pulumi about
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).
The text was updated successfully, but these errors were encountered: