The web UI only submits requests in blocks of 20, and waits for all requests in that block to finish before launching another block of 20. This causes a mass refresh of applications to get stuck if any of the individual applications get stuck, and significantly slows the process down because if status-processors is set higher than the default then the UI won't use the maximum number of possible workers.
Bring up an ArgoCD instance where argocd-application-controller has --status-processors set to a number higher than 20
Create more than 20 apps
From the web UI, click "refresh apps" and select all apps
Click "refresh"
Expected behavior
One or both of the following:
The applications are refreshed as fast as possible by submitting >20 requests at a time if the server can handle it.
The UI doesn't wait for all requests in a block to finish before launching additional refresh requests.
Screenshots
Here's a screenshot of the network page during the refresh operation showing that the refresh requests are being fired in blocks of 20:
(URLs omitted from the screenshot since they contain company info, but these are all requests to refresh an app)
Checklist:
argocd version
.Describe the bug
The web UI only submits requests in blocks of 20, and waits for all requests in that block to finish before launching another block of 20. This causes a mass refresh of applications to get stuck if any of the individual applications get stuck, and significantly slows the process down because if
status-processors
is set higher than the default then the UI won't use the maximum number of possible workers.The relevant block of code seems to be here: https://github.com/argoproj/argo-cd/blob/653fc8da1f9c48cef535ff15e6ac7b5f795c9dae/ui/src/app/applications/components/applications-refresh-panel/applications-refresh-panel.tsx#L67-L70
To Reproduce
argocd-application-controller
has--status-processors
set to a number higher than 20Expected behavior
One or both of the following:
Screenshots
Here's a screenshot of the network page during the refresh operation showing that the refresh requests are being fired in blocks of 20: (URLs omitted from the screenshot since they contain company info, but these are all requests to refresh an app)
Version
(The shell is slightly out of date on the machine I'm submitting this from, but I didn't use the shell at all.)
Logs
N/A