argoproj / argoproj/argo-cd

Getting a lot of "error reading from server: EOF"

Open
#17,546 9 comments 5 reactions 0 assignees View on GitHub
bug component:server version:EOL
Dominant language
Go
Stars
24.2k
Forks
7.8k
Avg merge
1d 14h
Merged PRs (30d)
246

Description

Checklist:

* [x] I've searched in the docs and FAQ for my answer: https://bit.ly/argocd-faq.
* [ ] I've included steps to reproduce the bug.
* [X] I've pasted the output of `argocd version`.

**Describe the bug**

We are seeing a lot of "error reading from server: EOF". Looking at one hour we've had 1.92k.
We have a large instance with 9000+ Applications which may be a contributing factor.
We have one cluster that ArgoCD runs from and it controls 17 other clusters.
We have 17 controllers.
We have server.k8sclient.retry.max: "3"

Full error message
`ComparisonError
Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = error reading from server: EOF`

Since we thought it might be related to scaling I stopped by the SIG Scalability meeting and Andrew Lee suggested I create an issue to track this.

He also thought it might be the control plane being overloaded but infrastructure took a look and said the control plane of the ArgoCD cluster looked fine.

**To Reproduce**

**Expected behavior**

Have less errors.

**Screenshots**

Graph of the errors over the last month. 😬
![image](https://github.com/argoproj/argo-cd/assets/77691887/a3a1964d-4f0d-439a-b677-f5cbd26065e7)

error as shown in the UI
![image](https://github.com/argoproj/argo-cd/assets/77691887/281d4b29-2906-4662-9f53-07a9b7f24c93)

**Version**

```shell
argocd-server: v2.10.1+a79e0ea
BuildDate: 2024-02-14T17:37:43Z
GitCommit: a79e0eaca415461dc36615470cecc25d6d38cefb
GitTreeState: clean
GoVersion: go1.21.3
Compiler: gc
Platform: linux/amd64
Kustomize Version: v5.2.1 2023-10-19T20:13:51Z
Helm Version: v3.14.0+g3fc9f4b
Kubectl Version: v0.26.11
Jsonnet Version: v0.20.0
```

**Logs**

```

11:00:08.380
time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T15:57:38Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = error reading from server: EOF\",\"type\":\"ComparisonError\"}]}}" application=
message: time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T15:57:38Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = error reading from server: EOF\",\"type\":\"ComparisonError\"}]}}" application= _p: F annotations.checksum/cm: 26439947f5da3e5307e31fe8e9c0b4ab7213e087c5524273e4d3a2a527ce0f71 annotations.checksum/cmd-params: 092f2d18799cea1017442cddba67471acdb42d0f052aba26447b1c909dc5787c cluster_name: aks-moy23-prod container_hash: quay.io/argoproj/argocd@sha256:5f1de1b4d959868c1e006e08d46361c8f019d9730e74bc1feeab8c7b413f1187 container_image: quay.io/argoproj/argocd:v2.10.1 container_name: application-controller docker_id: dc39a721c7cd15e0d21abe2ef44b983470fbddc21293d99e555edf798a156a55 host: aks-generalb-37778483-vmss00000h labels.app.kubernetes.io/component: application-controller labels.app.kubernetes.io/instance: argocd labels.app.kubernetes.io/managed-by: Helm labels.app.kubernetes.io/name: argocd-application-controller labels.app.kubernetes.io/part-of: argocd labels.app.kubernetes.io/version: v2.10.1 labels.controller-revision-hash: argocd-application-controller-79b958f585 labels.helm.sh/chart: argo-cd-6.0.14 labels.statefulset.kubernetes.io/pod-name: argocd-application-controller-2 namespace_name: argocd newrelic.logPattern: nr.DID_NOT_MATCH newrelic.source: api.logs plugin.source: kubernetes plugin.type: fluent-bit plugin.version: 1.19.0 pod_id: 7bbd7a70-ef05-41a9-a98b-ef56ae2e605f pod_name: argocd-application-controller-2 stream: stderr time: 2024-03-15T16:00:08.380704895Z timestamp: 1710518408380

11:00:08.381
time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:08Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application=
message: time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:08Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application= _p: F annotations.checksum/cm: 26439947f5da3e5307e31fe8e9c0b4ab7213e087c5524273e4d3a2a527ce0f71 annotations.checksum/cmd-params: 092f2d18799cea1017442cddba67471acdb42d0f052aba26447b1c909dc5787c cluster_name: aks-moy23-prod container_hash: quay.io/argoproj/argocd@sha256:5f1de1b4d959868c1e006e08d46361c8f019d9730e74bc1feeab8c7b413f1187 container_image: quay.io/argoproj/argocd:v2.10.1 container_name: application-controller docker_id: 02b66a64fef3c748aa76a317617e93323e205193eada0e4bd4af1034f9e1895c host: aks-generalb-37778483-vmss000001 labels.app.kubernetes.io/component: application-controller labels.app.kubernetes.io/instance: argocd labels.app.kubernetes.io/managed-by: Helm labels.app.kubernetes.io/name: argocd-application-controller labels.app.kubernetes.io/part-of: argocd labels.app.kubernetes.io/version: v2.10.1 labels.controller-revision-hash: argocd-application-controller-79b958f585 labels.helm.sh/chart: argo-cd-6.0.14 labels.statefulset.kubernetes.io/pod-name: argocd-application-controller-9 namespace_name: argocd newrelic.logPattern: nr.DID_NOT_MATCH newrelic.source: api.logs plugin.source: kubernetes plugin.type: fluent-bit plugin.version: 1.19.0 pod_id: 0da033c0-8bec-41e5-969f-e894c99353ed pod_name: argocd-application-controller-9 stream: stderr time: 2024-03-15T16:00:08.3814418Z timestamp: 1710518408381

11:00:08.394
time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T15:59:13Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = error reading from server: EOF\",\"type\":\"ComparisonError\"}]}}" application=
message: time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T15:59:13Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = error reading from server: EOF\",\"type\":\"ComparisonError\"}]}}" application= _p: F annotations.checksum/cm: 26439947f5da3e5307e31fe8e9c0b4ab7213e087c5524273e4d3a2a527ce0f71 annotations.checksum/cmd-params: 404e231545d2b5ddeeec5c5db3ef9230f1e6ca442d95dd2788c1f5ebb084582e cluster_name: aks-moy23-prod container_hash: quay.io/argoproj/argocd@sha256:5f1de1b4d959868c1e006e08d46361c8f019d9730e74bc1feeab8c7b413f1187 container_image: quay.io/argoproj/argocd:v2.10.1 container_name: application-controller docker_id: f6be1e20747983eca459b66832dcef4dcb9564600cbf196e18d50f533c197298 host: aks-systemd-31993041-vmss000000 labels.app.kubernetes.io/component: application-controller labels.app.kubernetes.io/instance: argocd labels.app.kubernetes.io/managed-by: Helm labels.app.kubernetes.io/name: argocd-application-controller labels.app.kubernetes.io/part-of: argocd labels.app.kubernetes.io/version: v2.10.1 labels.controller-revision-hash: argocd-application-controller-ddbbd89c5 labels.helm.sh/chart: argo-cd-6.0.14 labels.statefulset.kubernetes.io/pod-name: argocd-application-controller-13 namespace_name: argocd newrelic.logPattern: nr.DID_NOT_MATCH newrelic.source: api.logs plugin.source: kubernetes plugin.type: fluent-bit plugin.version: 1.19.0 pod_id: 4bd600cd-c276-4670-a605-4f3ad265fad8 pod_name: argocd-application-controller-13 stream: stderr time: 2024-03-15T16:00:08.394942606Z timestamp: 1710518408394

11:00:08.401
time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:07Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application=
message: time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:07Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application= _p: F annotations.checksum/cm: 26439947f5da3e5307e31fe8e9c0b4ab7213e087c5524273e4d3a2a527ce0f71 annotations.checksum/cmd-params: 092f2d18799cea1017442cddba67471acdb42d0f052aba26447b1c909dc5787c cluster_name: aks-moy23-prod container_hash: quay.io/argoproj/argocd@sha256:5f1de1b4d959868c1e006e08d46361c8f019d9730e74bc1feeab8c7b413f1187 container_image: quay.io/argoproj/argocd:v2.10.1 container_name: application-controller docker_id: dc39a721c7cd15e0d21abe2ef44b983470fbddc21293d99e555edf798a156a55 host: aks-generalb-37778483-vmss00000h labels.app.kubernetes.io/component: application-controller labels.app.kubernetes.io/instance: argocd labels.app.kubernetes.io/managed-by: Helm labels.app.kubernetes.io/name: argocd-application-controller labels.app.kubernetes.io/part-of: argocd labels.app.kubernetes.io/version: v2.10.1 labels.controller-revision-hash: argocd-application-controller-79b958f585 labels.helm.sh/chart: argo-cd-6.0.14 labels.statefulset.kubernetes.io/pod-name: argocd-application-controller-2 namespace_name: argocd newrelic.logPattern: nr.DID_NOT_MATCH newrelic.source: api.logs plugin.source: kubernetes plugin.type: fluent-bit plugin.version: 1.19.0 pod_id: 7bbd7a70-ef05-41a9-a98b-ef56ae2e605f pod_name: argocd-application-controller-2 stream: stderr time: 2024-03-15T16:00:08.401300838Z timestamp: 1710518408401

11:00:08.411
time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T15:58:44Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = error reading from server: EOF\",\"type\":\"ComparisonError\"}]}}" application=
message: time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T15:58:44Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = error reading from server: EOF\",\"type\":\"ComparisonError\"}]}}" application= _p: F annotations.checksum/cm: 26439947f5da3e5307e31fe8e9c0b4ab7213e087c5524273e4d3a2a527ce0f71 annotations.checksum/cmd-params: 404e231545d2b5ddeeec5c5db3ef9230f1e6ca442d95dd2788c1f5ebb084582e cluster_name: aks-moy23-prod container_hash: quay.io/argoproj/argocd@sha256:5f1de1b4d959868c1e006e08d46361c8f019d9730e74bc1feeab8c7b413f1187 container_image: quay.io/argoproj/argocd:v2.10.1 container_name: application-controller docker_id: f6be1e20747983eca459b66832dcef4dcb9564600cbf196e18d50f533c197298 host: aks-systemd-31993041-vmss000000 labels.app.kubernetes.io/component: application-controller labels.app.kubernetes.io/instance: argocd labels.app.kubernetes.io/managed-by: Helm labels.app.kubernetes.io/name: argocd-application-controller labels.app.kubernetes.io/part-of: argocd labels.app.kubernetes.io/version: v2.10.1 labels.controller-revision-hash: argocd-application-controller-ddbbd89c5 labels.helm.sh/chart: argo-cd-6.0.14 labels.statefulset.kubernetes.io/pod-name: argocd-application-controller-13 namespace_name: argocd newrelic.logPattern: nr.DID_NOT_MATCH newrelic.source: api.logs plugin.source: kubernetes plugin.type: fluent-bit plugin.version: 1.19.0 pod_id: 4bd600cd-c276-4670-a605-4f3ad265fad8 pod_name: argocd-application-controller-13 stream: stderr time: 2024-03-15T16:00:08.411189232Z timestamp: 1710518408411

11:00:08.433
time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:08Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application=
message: time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:08Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application= _p: F annotations.checksum/cm: 26439947f5da3e5307e31fe8e9c0b4ab7213e087c5524273e4d3a2a527ce0f71 annotations.checksum/cmd-params: 092f2d18799cea1017442cddba67471acdb42d0f052aba26447b1c909dc5787c cluster_name: aks-moy23-prod container_hash: quay.io/argoproj/argocd@sha256:5f1de1b4d959868c1e006e08d46361c8f019d9730e74bc1feeab8c7b413f1187 container_image: quay.io/argoproj/argocd:v2.10.1 container_name: application-controller docker_id: 3e6156ed03b25135d36f7b047d7daa90e3afc3de2b18d4d2dc25bbea3c3f3f9d host: aks-generalb-37778483-vmss000001 labels.app.kubernetes.io/component: application-controller labels.app.kubernetes.io/instance: argocd labels.app.kubernetes.io/managed-by: Helm labels.app.kubernetes.io/name: argocd-application-controller labels.app.kubernetes.io/part-of: argocd labels.app.kubernetes.io/version: v2.10.1 labels.controller-revision-hash: argocd-application-controller-79b958f585 labels.helm.sh/chart: argo-cd-6.0.14 labels.statefulset.kubernetes.io/pod-name: argocd-application-controller-8 namespace_name: argocd newrelic.logPattern: nr.DID_NOT_MATCH newrelic.source: api.logs plugin.source: kubernetes plugin.type: fluent-bit plugin.version: 1.19.0 pod_id: 154a813d-6786-4b40-8ae0-05e817637ba5 pod_name: argocd-application-controller-8 stream: stderr time: 2024-03-15T16:00:08.43332946Z timestamp: 1710518408433

11:00:08.434
time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:07Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application=
message: time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:07Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application= _p: F annotations.checksum/cm: 26439947f5da3e5307e31fe8e9c0b4ab7213e087c5524273e4d3a2a527ce0f71 annotations.checksum/cmd-params: 092f2d18799cea1017442cddba67471acdb42d0f052aba26447b1c909dc5787c cluster_name: aks-moy23-prod container_hash: quay.io/argoproj/argocd@sha256:5f1de1b4d959868c1e006e08d46361c8f019d9730e74bc1feeab8c7b413f1187 container_image: quay.io/argoproj/argocd:v2.10.1 container_name: application-controller docker_id: 9b168c2a588ba5bcc8203c34d67f9f58a4beb5ab5b1c7218f6a67cab9f9e1a12 host: aks-generalb-37778483-vmss00000h labels.app.kubernetes.io/component: application-controller labels.app.kubernetes.io/instance: argocd labels.app.kubernetes.io/managed-by: Helm labels.app.kubernetes.io/name: argocd-application-controller labels.app.kubernetes.io/part-of: argocd labels.app.kubernetes.io/version: v2.10.1 labels.controller-revision-hash: argocd-application-controller-79b958f585 labels.helm.sh/chart: argo-cd-6.0.14 labels.statefulset.kubernetes.io/pod-name: argocd-application-controller-3 namespace_name: argocd newrelic.logPattern: nr.DID_NOT_MATCH newrelic.source: api.logs plugin.source: kubernetes plugin.type: fluent-bit plugin.version: 1.19.0 pod_id: 327c563c-706a-49ef-b7c8-163a4e80a0fb pod_name: argocd-application-controller-3 stream: stderr time: 2024-03-15T16:00:08.434385725Z timestamp: 1710518408434

11:00:08.531
time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:08Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application=
message: time="2024-03-15T16:00:08Z" level=info msg="Normalized app spec: {\"status\":{\"conditions\":[{\"lastTransitionTime\":\"2024-03-15T16:00:08Z\",\"message\":\"Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unavailable desc = connection error: desc = \\\"transport: Error while dialing: dial tcp 10.0.253.32:8081: connect: connection refused\\\"\",\"type\":\"ComparisonError\"}]}}" application= _p: F annotations.checksum/cm: 26439947f5da3e5307e31fe8e9c0b4ab7213e087c5524273e4d3a2a527ce0f71 annotations.checksum/cmd-params: b83df4e1a4a70678015c4cb9d2a0aed37be0484994fda145e22693026b7d595a cluster_name: aks-moy23-prod container_hash: quay.io/argoproj/argocd@sha256:5f1de1b4d959868c1e006e08d46361c8f019d9730e74bc1feeab8c7b413f1187 container_image: quay.io/argoproj/argocd:v2.10.1 container_name: application-controller docker_id: 82d624292518d223432d71b024bcaf4d00273418bab4bd4689b37af91bcbec92 host: aks-thanossgb-42326671-vmss000000 labels.app.kubernetes.io/component: application-controller labels.app.kubernetes.io/instance: argocd labels.app.kubernetes.io/managed-by: Helm labels.app.kubernetes.io/name: argocd-application-controller labels.app.kubernetes.io/part-of: argocd labels.app.kubernetes.io/version: v2.10.1 labels.controller-revision-hash: argocd-application-controller-c98d4dcdd labels.helm.sh/chart: argo-cd-6.0.14 labels.statefulset.kubernetes.io/pod-name: argocd-application-controller-15 namespace_name: argocd newrelic.logPattern: nr.DID_NOT_MATCH newrelic.source: api.logs plugin.source: kubernetes plugin.type: fluent-bit plugin.version: 1.19.0 pod_id: 1385b5c3-6806-4f95-8f3a-279b91b4069c pod_name: argocd-application-controller-15 stream: stderr time: 2024-03-15T16:00:08.531596107Z timestamp: 1710518408531

```

Contributor guide

Open the contributing guide

Research direction

No source file or test is named. Start with the application-controller logs and the server.k8sclient.retry.max setting, compare the EOF and connection-refused cases across the 17 controlled clusters, and establish a reproducible failure at the reported scale; done means identifying the cause and defining a change that reduces these errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
devops, distributed-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.