A successfully acked message is redelivered long before its visibility timeout expires
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- go
- Domain
- distributed-systems
Research direction
Start by tracing the message ack and visibility-timeout delivery paths, then inspect how delivery-state rows are updated and garbage-collected. Reproduce the reported redelivery under load and compare the stored ack state and invisible_until with the configured 60-second timeout. Done means identifying and fixing the cause so a successfully acked message is not redelivered before its visibility timeout.
Written by the indexing model from the issue text.
Description
Problem
A message that a consumer processed successfully, and reported as processed, was redelivered about 12 seconds later, against a 60-second visibility timeout and with a single consumer running. The redelivery reported attempt: 2, so it came through the visibility-timeout path on a delivery-state row that was still unacked.
Impact
The duplicate propagated: Runway answered the same merge-conflict-check twice, and the batch stage created a second batch for the same request. The pipeline absorbed it, and the duplicate batches failed, but each one cost a full speculation and build cycle. If a successful ack can be redelivered at a fifth of its visibility timeout, at-least-once delivery is firing far more often than intended.
Not yet established
Either the ack did not set acked, despite the consumer reporting success, or invisible_until was shorter than configured. The delivery-state row had already been garbage-collected, so it could not be inspected. This reproduced under load (a 20-request demo run) and not on smaller runs.
Status
No fixing change has been identified on main.
- Dominant language
- Go
- Stars
- 247
- Forks
- 16
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 125
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 uber/submitqueue
-
[Bug] Land returns codes.Unknown instead of InvalidArgument for an unrecognized strategyPossibly taken @DivyanshGarg380 claimed this 14 days ago. Openbug
Difficulty 1/5 Under an hour Newbie friendliness 22/100
uber/submitqueue#996 ·
Maintainers usually reply within 2 days
-
Batch-scoped DLQ reconciler fails requests that another live batch ownsPossibly taken @burgulvedant claimed this 14 days ago. Openbug
Difficulty 4/5 3-5 days Newbie friendliness 55/100
uber/submitqueue#826 · 1 comment ·
Maintainers usually reply within 2 days
-
Cancel misses a batch mid-promotion, letting a cancelled request reach speculationMay be free again @burgulvedant claimed this 14 days ago, and no pull request is open. Openbug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
uber/submitqueue#825 · 1 comment ·
Maintainers usually reply within 2 days
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 55/100
uber/submitqueue#820 ·
Maintainers usually reply within 2 days
-
bug
Difficulty 5/5 Over a week Newbie friendliness 35/100
uber/submitqueue#819 · 1 comment ·
Maintainers usually reply within 2 days
All issues in uber/submitqueue
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
kubescape/node-agent#1099 ·
Maintainers usually reply within 1 day
-
import-export
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
genealogix/glx#1498 ·
Maintainers usually reply within 2 days
-
Docs: 2 broken linksOpenBug pulumi/pulumi-terraform-bridge R2 S2
Difficulty 1/5 Under an hour Newbie friendliness 72/100
pulumi/pulumi-terraform-bridge#3713 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ossf/pvtr-github-repo-scanner#539 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
goreleaser/goreleaser#7316 ·
Maintainers usually reply within 1 day