Skip to content

Data loss when using "Resend dead letter messages" #64

@peterjohnsonme

Description

@peterjohnsonme

Today I attempted to re-send DLQ messages to a Queue. To accomplish this I went to the Details tab of a Queue and clicked the "Resend dead letter messages" icon at the bottom.

While it was running (and the status icon on the left nav was spinning) I clicked the X icon thinking I was just minimizing the status dialog. Instead it cancelled the task, and the result was all DLQ messages were lost.

Suggested enhancement:
As DLQ messages are resent, the following flow should be followed:

  1. The individual DLQ message is peek-locked.
  2. The message is attempted to be sent to the main queue.
  3. Upon successful message send, the DLQ message is "completed."
  4. Upon an error in the process, the lock is released.

The offending line is here, but it would require a refactor of the individual resend logic from read-and-delete entire batch > re-send to peek-lock individual message > attempt send > complete original message.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions