[Bug]: Router hides the final resume error when the retry budget expires
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
Research direction
Read cmd/atenet/internal/router/ingress/resumer.go, especially flightResult, and inspect the existing ingress test client and tests using testing/synctest. Reproduce the sequence with parking enabled, then check that when the retry budget expires the final NotFound error is returned rather than the earlier ResourceExhausted error.
Written by the indexing model from the issue text.
Description
What happened?
With request parking enabled, the router can return an earlier capacity error even after a retry returns NotFound. The client then gets HTTP 503 instead of 404.
This is reproducible in a unit test. When the budget has expired, flightResult returns the saved lastRetryErr instead of the final RPC error.
Expected Behavior
Return the final non-retryable error, even if the RPC finishes after the retry budget expires.
Steps to Reproduce
Using the existing ingress test client and testing/synctest:
- Enable parking with a 300 ms budget.
- Return
ResourceExhaustedfrom the firstResumeActorcall. - On the next call, sleep for 300 ms and return
NotFound. - The resumer returns
ResourceExhaustedinstead ofNotFound.
expected terminal error rpc error: code = NotFound desc = actor not found, got rpc error: code = ResourceExhausted desc = no free workers available
Sandbox Runtime
Both / Runtime Agnostic. Reproduced in a unit test; no cluster involved.
Agent Substrate Version / Commit SHA
main at fa858d0fdbec0e942e43667dba75194665a2ff38, macOS arm64, Go 1.27.0.
Additional Context
Related to #1562, but this case already returns an error the router considers non-retryable.
- Dominant language
- Go
- Stars
- 4.4k
- Forks
- 515
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 311
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from agent-substrate/substrate
-
Router dynamic xDS gRPC control plane runs plaintext on 0.0.0.0:18000Possibly taken @LiorLieberman claimed this 2 days ago. Openarea/network area/security kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
agent-substrate/substrate#2276 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
[Bug]: e2e script flag parsing is brokenPossibly taken @ericcurtin claimed this 3 days ago. Openarea/dev-infra area/tests kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
agent-substrate/substrate#2217 · 1 comment ·
Maintainers usually reply within 1 day
-
Reject trailing YAML documents in actor-template create manifestsPossibly taken @ericcurtin claimed this 6 days ago. Openarea/cli kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
agent-substrate/substrate#2156 · 1 comment ·
Maintainers usually reply within 1 day
-
area/storage kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
agent-substrate/substrate#2155 · 1 comment ·
Maintainers usually reply within 1 day
-
Delete final-round GCS compose inputs after successful uploadsPossibly taken @ericcurtin claimed this 5 days ago. Openarea/storage kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
agent-substrate/substrate#2154 ·
Maintainers usually reply within 1 day
All issues in agent-substrate/substrate
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
siyuan-note/siyuan#20353 ·
Maintainers usually reply within 1 day
-
attributes-natural-language "en-US" is rejected by PAPPL >= 1.4.12 printers (RFC 8011 requires lowercase)Possibly taken @ChrisEdgington claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 84/100
OpenPrinting/ipp-usb#140 ·
-
Discriminator mapping keys are listed in a random orderPossibly taken @reuvenharrison claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Idle compaction monitors LIST the replica every tick when the newest destination file spans more than one TXIDPossibly taken @pishuv claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
benbjohnson/litestream#1563 ·
Maintainers usually reply within 2 days
-
triage needed
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 2 days