-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
Unexpected (and Constant) Application Updates #3262
Comments
Looking into it |
I could not reproduce this in both v1.4.2 and v1.5.0-rc1. After the initial deploy where the application reconciles very frequently (because there are changes happening with the managed objects), the app eventually "settled" and there were no refreshes. Notice the reason for refreshes is logged in the controller. In my case it is because $ kl argocd-application-controller-6c869db745-z9hmv | grep application=opining-molly-redis | grep "Refreshing app status"
time="2020-03-24T02:09:27Z" level=info msg="Refreshing app status (comparison expired. reconciledAt: never, expiry: 3m0s), level (2)" application=opining-molly-redis
time="2020-03-24T02:10:08Z" level=info msg="Refreshing app status (normal refresh requested), level (2)" application=opining-molly-redis
time="2020-03-24T02:10:10Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:10Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:10Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:10Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:10Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:10Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:10Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:10Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:10Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:11Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:11Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:11Z" level=info msg="Refreshing app status (controller refresh requested), level (2)" application=opining-molly-redis
time="2020-03-24T02:10:12Z" level=info msg="Refreshing app status (controller refresh requested), level (0)" application=opining-molly-redis
time="2020-03-24T02:10:12Z" level=info msg="Refreshing app status (controller refresh requested), level (0)" application=opining-molly-redis
time="2020-03-24T02:10:21Z" level=info msg="Refreshing app status (controller refresh requested), level (0)" application=opining-molly-redis
time="2020-03-24T02:10:21Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:52Z" level=info msg="Refreshing app status (controller refresh requested), level (0)" application=opining-molly-redis
time="2020-03-24T02:10:52Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:10:53Z" level=info msg="Refreshing app status (controller refresh requested), level (0)" application=opining-molly-redis
time="2020-03-24T02:11:03Z" level=info msg="Refreshing app status (controller refresh requested), level (0)" application=opining-molly-redis
time="2020-03-24T02:11:04Z" level=info msg="Refreshing app status (controller refresh requested), level (1)" application=opining-molly-redis
time="2020-03-24T02:11:09Z" level=info msg="Refreshing app status (normal refresh requested), level (2)" application=opining-molly-redis Can you share any argocd-cm configuration that you might have set? |
Here is the relevant code where we decide whether or not we need to reconcile: } else if !app.Spec.Source.Equals(app.Status.Sync.ComparedTo.Source) {
reason = "spec.source differs" Equals is simply a DeepEquals against the structured objects: // Equals compares two instances of ApplicationSource and return true if instances are equal.
func (source *ApplicationSource) Equals(other ApplicationSource) bool {
return reflect.DeepEqual(*source, other)
} So it seems in your case, Can you share the output of:
Please do this when the app is in the refresh loop to catch why the comparison is not equal. |
application-opining-molly-redis.txt Here you go. That's from one of our test clusters. |
i can see the same thing with our setup , is this solved with new versions ? |
Seeing the same symptoms but in a slightly different situation ... while running argoproj/argocd:v1.5.4 Symptoms:
Setup :
After having removed the extraneous fields as mention by OP, CPU usage has dropped and the log messages are no longer present. The generation field seems to be increasing gradually but is doing so at a much slower rate than before. |
Checklist:
argocd version
.Describe the bug
When using helm, found that our Application object's "generation" field was constantly updating. After some help, we discovered it was because of a few empty fields:
source.path
(was set to empty string),source.helm.parameters
(empty list), andsource.helm.valuesFiles
(empty list). I removed all three fields from our Application objects, and things stopped refreshing.Some other things to note:
To Reproduce
Deploy an Application like so, using app-of-apps:
Expected behavior
Application allows for empty fields to be present without causing behind-the-scenes refreshes.
Version
Logs
From the application-controller pod:
The text was updated successfully, but these errors were encountered: