-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
ENHANCE_YOUR_CALM error for plugins that take >45 seconds #15656
Comments
This is a feature conflict. The CMP timeout is configurable with a higher default value (60s). The argocd app create/patch commands run validation which will run CMP before applying the change. The GRPCKeepAliveEnforcementMinimum for argocd CLI isn't configurable and it is lower than the CMP timeout. The CLI commands fail intermittently when the CMP takes more than 30 seconds. The GRPCKeepAliveEnforcementMinimum value here should be configurable as a CLI parameter and/or an environment variable. Happy to make a contribution to this if the community agrees on the use-case and the solution. |
That makes sense to me! |
Making it an env variable sounds good! 👍🏻 |
@crenshaw-dev is there any update on this? |
I think this is not related to GRPCKeepAliveEnforcementMinimum being lower than the CMP timeout. The grpc keepalive settings govern how clients send pings and how servers expect clients to send their pings in a grpc connection (ref). This seems to be related to #15707 instead. The CLI is also using the same apiclient package, likely suffering from the same issue. ...
In theory, making it configurable may prolong the time for the GOAWAY error to be thrown (for example using 30s translates to 30s * 4 = 120s), thus alleviating the problem. However, it might not directly address the root cause. 🤔 While it also offers more configuration options, for example if we want to reduce grpc keepalive pings to the ArgoCD server in case the pings start to impair server performance (which I think is unlikely as ArgoCD is not serving millions of mobile clients), it may actually make the system more complex for users as they need to correctly coordinate the values between the client (including external 3rd party API clients) and the server (and the work behind the server like cmp plugins) according to the grpc keepalive spec. I think keeping it hardcoded provides the simpler approach. |
) * Add ENV variables to configure GRPC Keep Alive Time Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Retrigger CI pipeline Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Resolve conflict with master Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Update docs/user-guide/environment-variables.md Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> --------- Signed-off-by: Bhavika Sharma <bsharma@splunk.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com>
…) (argoproj#15806) * Add ENV variables to configure GRPC Keep Alive Time Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Retrigger CI pipeline Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Resolve conflict with master Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Update docs/user-guide/environment-variables.md Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> --------- Signed-off-by: Bhavika Sharma <bsharma@splunk.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com>
…) (argoproj#15806) * Add ENV variables to configure GRPC Keep Alive Time Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Retrigger CI pipeline Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Resolve conflict with master Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Update docs/user-guide/environment-variables.md Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> --------- Signed-off-by: Bhavika Sharma <bsharma@splunk.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com> Signed-off-by: jmilic1 <70441727+jmilic1@users.noreply.github.com>
…) (argoproj#15806) * Add ENV variables to configure GRPC Keep Alive Time Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Retrigger CI pipeline Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Resolve conflict with master Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Update docs/user-guide/environment-variables.md Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> --------- Signed-off-by: Bhavika Sharma <bsharma@splunk.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com>
…) (argoproj#15806) * Add ENV variables to configure GRPC Keep Alive Time Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Retrigger CI pipeline Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Resolve conflict with master Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Update docs/user-guide/environment-variables.md Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> --------- Signed-off-by: Bhavika Sharma <bsharma@splunk.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com>
For anyone lurking around this issue, like I was, upgrading the server to anything over 2.9.0 and the client to anything over 2.10.0 (even RC works here) and setting the value for the |
…) (argoproj#15806) * Add ENV variables to configure GRPC Keep Alive Time Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Retrigger CI pipeline Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Resolve conflict with master Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Update docs/user-guide/environment-variables.md Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> --------- Signed-off-by: Bhavika Sharma <bsharma@splunk.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com>
You're setting that var on the |
meh, this still doesn't work with client |
@audrey-mux had exactly same issue, api calls to argocd server resulted with the current issue error (
and executing the local terminal session with server:
hope this helps somehow |
…) (argoproj#15806) * Add ENV variables to configure GRPC Keep Alive Time Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Retrigger CI pipeline Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Resolve conflict with master Signed-off-by: Bhavika Sharma <bsharma@splunk.com> * Update docs/user-guide/environment-variables.md Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> --------- Signed-off-by: Bhavika Sharma <bsharma@splunk.com> Signed-off-by: BhavikaSharma <BhavikaSharma@users.noreply.github.com> Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com>
Checklist:
argocd version
.Describe the bug
When creating an application that runs a custom plugin that runs for over ~45 seconds, the user is returned an
ENHANCE_YOUR_CALM
error.This happens on occasion for plugins > 45s and consistently for plugins > 80s.
To Reproduce
Create a CMP that runs for a long time (e.g. run a script that includes a
sleep 90
).Run:
where
create.json
is the definition of the app that uses the long-running CMP.Expected behavior
App is created with no error.
Screenshots
N/A
Version
Logs
The text was updated successfully, but these errors were encountered: