argoproj / argoproj/argo-workflows
Paginate/compress VERY large workflows so they can travel through gRPC
- Dominant language
- Go
- Stars
- 17k
- Forks
- 3.7k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 138
Description
## Summary
A user is experiencing an issue when querying for a VERY large workflow (135k+ nodes) using the API.
```
curl http://localhost:2747/api/v1/workflow-events/pre-production-testing-1?listOptions.fieldSelector=metadata.name=otpgal-gqpcf
{"error":{"grpc_code":8,"http_code":429,"message":"trying to send message larger than max (296376209 vs. 104857600)","http_status":"Too Many Requests"}}
```
This message limit is placed by gRPC. We should find a way to compress/paginate or otherwise modify the message so it's able to travel over gRPC. At the very least we should provide a reasonable error to this problem.
Note that this only affects sending workflows over the API. CLI and execution are fully unaffected.
## Diagnostics
What Kubernetes provider are you using?
All platforms
What version of Argo Workflows are you running?
All versions
---
**Message from the maintainers**:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.
Contributor guide
Research direction
Start by reproducing the API request for a workflow with 135k+ nodes and tracing where the gRPC maximum-message error occurs. Done means large workflows can travel through the API via compression or pagination, or the API returns a reasonable error when they cannot; CLI and execution must remain unaffected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, grpc
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100