Skip to content

Gracefully handle SMTP user input errors (e.g. incorrect email addresses) to prevent Sidekiq retries

Stan Hu requested to merge stanhu/gitlab-ce:handle-smtp-input-errors into master

What does this MR do?

This MR gracefully handles SMTP input errors (e.g. incorrect or invalid e-mail addresses) to prevent these types of exceptions from causing Sidekiq to retry the task. If these specific exceptions occur, they will be logged, and the e-mail will be dropped from the queue.

Why was this MR needed?

If you include an author that has a misspelled e-mail address, Sidekiq will keep sending e-mail to all the recipients even if they have already received the e-mail. The only way to recover is to clear the Sidekiq queue.

Note that other exceptions can still be thrown (e.g. IOError, Net::SMTPAuthenticationError, Net::SMTPServerBusy, Net::SMTPUnknownError, and TimeoutError). If the worker encounters these, Sidekiq should retry the task.

What are the relevant issue numbers?

Closes https://github.com/gitlabhq/gitlabhq/issues/9560

Merge request reports