Ticket #17 (closed defect: fixed)

Opened 1 year ago

Last modified 1 year ago

Patch — Re-queue message after encountering a temporary delivery error.

Reported by: fs Owned by: amcgregor
Priority: critical Milestone: 2.1
Component: dispatcher Version: 2.0.4
Keywords: patch Cc:

Description

Currently, if an exception occurs while sending the mail to the mail hub (e.g. connection refused, mail server refuses recipients, ...) the mail is lost!

While a proper solution would require some more advanced queue management this ticket is about the 'easy cases' when the error is only temporary and can be resolved just by waiting for a short time.

The patch attached catches some specific exceptions, freezes the worker thread for a second and puts the current message back into the queue.

Attachments

handling_of_temporary_errors.patch (3.7 kB) - added by fs 1 year ago.

Change History

Changed 1 year ago by fs

Changed 1 year ago by amcgregor

  • component changed from unassigned to dispatcher
  • milestone set to 2.0.5

Patch applied as of r28. Additionally, the thread dies due to the exception because a stale SMTP connection will only lead to a string of exceptions until old age otherwise. It's much safer (and easier on the logs for temporary errors) to simply kill the thread.

Changed 1 year ago by amcgregor

  • status changed from new to closed
  • resolution set to fixed

Changed 1 year ago by amcgregor

  • summary changed from Do not loose message if mail hub is unavailable for a short period to Re-queue message after encountering a temporary delivery error.

Changed 1 year ago by amcgregor

  • keywords patch added
  • summary changed from Re-queue message after encountering a temporary delivery error. to Re-queue message after encountering a temporary delivery error. — Patch

Changed 1 year ago by amcgregor

  • summary changed from Re-queue message after encountering a temporary delivery error. — Patch to Patch — Re-queue message after encountering a temporary delivery error.
Note: See TracTickets for help on using tickets.