Visitar URL original
A successfully acked message is redelivered long before its visibility timeout expires · Issue #824 · uber/submitqueue · GitHub
Skip to content

A successfully acked message is redelivered long before its visibility timeout expires #824

Description

@behinddwalls

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions