Входящие письма больше не обрабатываются, в логе указано: Email can not be processed: Email::Receiver::EmptyEmailError

Внезапно система перестала обрабатывать электронную почту. В логе я вижу следующую запись:

Сообщение (7560 копий сообщено)

Не удалось обработать электронное письмо: Email::Receiver::EmptyEmailError



Трассировка стека

/var/www/discourse/lib/email/processor.rb:183:in `log_email_process_failure'
/var/www/discourse/lib/email/processor.rb:29:in `rescue in process!'
/var/www/discourse/lib/email/processor.rb:16:in `process!'
/var/www/discourse/lib/email/processor.rb:13:in `process!'
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:29:in `process_popmail'
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:49:in `block (2 levels) in poll_pop3'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-pop-0.1.2/lib/net/pop.rb:669:in `each'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-pop-0.1.2/lib/net/pop.rb:669:in `each_mail'
/var/www/discourse/app/jobs/scheduled/poll_mailbox.rb:46:in `block in poll_pop3'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-pop-0.1.2/lib/net/pop.rb:531:in `start'

Я проверил почтовый ящик и не вижу там никаких подозрительных писем…

Ошибка не отображается в списке отклонённых; фактически, туда больше ничего не добавляется.

Все письма, похоже, остаются в почтовом ящике без обработки.

Это случалось со мной однажды при опросе почты через POP, когда из-за огромного почтового ящика возникали тайм-ауты.

Вы удаляете полученные сообщения?

Я ещё не успел, но писем не так много — около 30.

И мне нужно, чтобы они были обработаны…

Вы пробовали

?

Да, эта настройка была включена всё это время.

Я думаю, что у провайдера электронной почты что-то не так. Происходят странные вещи…

Спасибо за попытку помочь. Если я разберусь, я дам вам знать!

Если я не ошибаюсь, я исправил код в работающем Discourse, чтобы игнорировать пустые письма.

Вы можете попробовать добавить return if @mail.blank? перед строкой 18.

Или же можно попробовать удалить неудачную задачу из Sidekiq.

(Перед такими экспериментами я бы сделал резервную копию)

И если это исправит проблему, то это следует перенести в bug.

Просто подождите. Похоже, почтовый сервер работает со сбоями. Помимо ошибки «пустая почта», я также получаю тайм-аут чтения, который изначально не связывал с процессом обработки электронной почты, но он связан.

Сейчас я общаюсь с моим хостинг-провайдером, который подтвердил, что, похоже, проблема на их стороне.

Как только я узнаю больше, я сообщу вам!

Отлично, мы нашли виновника. Это было одно письмо: как только я переместил его в отдельную папку, остальные письма начали обрабатываться корректно.

IMAP-клиент видит это письмо без проблем. Если хотите, я могу отправить вам сырое содержимое этого письма (включая заголовки и всё остальное) в личное сообщение, чтобы вы могли проверить и отладить причину зависания процесса.

Есть ли у вас ещё шанс, что это письмо у вас сохранилось? Если да, я бы с радостью взглянул на него (в ЛС) :+1: