Неудачные задачи в электронной почте

Привет!

Сборка Discourse: 3.5.0.beta2-dev(176ee0bf60)
Размещено на: VPS - Centminmod (131.00stable) на Alma8
Проблема: Периодические сбои отправки почты

На этом VPS у меня два виртуальных хоста: один с Xenforo, другой с Discourse.

Xenforo отправляет почту без проблем 24/7. Однако Discourse, похоже, перестаёт работать примерно каждые 24 часа с ошибкой: «Есть [число, которое увеличивается] задач отправки почты, которые не выполнены. Проверьте ваш app.yml и убедитесь, что настройки почтового сервера верны. Просмотрите неудачные задачи в Sidekiq».

Я могу временно «решить» проблему, перезапустив службу Docker. Отправка почты возобновляется.
Я уверен, что настройки почты верны. После перезапуска службы Docker я могу зайти в админ-панель → почта → настройка сервера и логи → настройки и отправить тестовое письмо.

После сбоя это невозможно.

Я вижу, что Sidekiq потребляет слишком много памяти (использует 5xx МБ), из-за чего Fastserver-app перезапускается:

activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn' 
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch' 
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `each' 
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch' 
activesupport-7.2.2.1/lib/active_support/broadcast_logger.rb:130:in `warn' 
/var/www/discourse/lib/demon/sidekiq.rb:55:in `block in rss_memory_check' 
/var/www/discourse/lib/demon/sidekiq.rb:49:in `each' 
/var/www/discourse/lib/demon/sidekiq.rb:49:in `rss_memory_check' 
config/unicorn.conf.rb:132:in `block (2 levels) in reload'

Также я вижу ошибку задачи: «нет адреса для meta.discourse.org (ResolvError)»:

excon-1.2.4/lib/excon/socket.rb:191:in `connect' 
excon-1.2.4/lib/excon/ssl_socket.rb:194:in `connect' 
excon-1.2.4/lib/excon/socket.rb:60:in `initialize' 
excon-1.2.4/lib/excon/ssl_socket.rb:10:in `initialize' 
excon-1.2.4/lib/excon/connection.rb:487:in `new' 
excon-1.2.4/lib/excon/connection.rb:487:in `socket' 
excon-1.2.4/lib/excon/connection.rb:120:in `request_call' 
excon-1.2.4/lib/excon/middlewares/mock.rb:57:in `request_call' 
excon-1.2.4/lib/excon/middlewares/instrumentor.rb:34:in `request_call' 
excon-1.2.4/lib/excon/middlewares/idempotent.rb:19:in `request_call' 
excon-1.2.4/lib/excon/middlewares/base.rb:22:in `request_call' 
excon-1.2.4/lib/excon/middlewares/decompress.rb:14:in `request_call' 
excon-1.2.4/lib/excon/middlewares/base.rb:22:in `request_call' 
excon-1.2.4/lib/excon/connection.rb:293:in `request' 
/var/www/discourse/lib/discourse_updates.rb:136:in `new_features_payload' 
/var/www/discourse/app/jobs/scheduled/check_new_features.rb:24:in `execute' 
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform' 
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform' 
/var/www/discourse/app/jobs/base.rb:299:in `each' 
/var/www/discourse/app/jobs/base.rb:299:in `perform' 
/var/www/discourse/app/jobs/base.rb:379:in `perform' 
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:137:in `process_queue' 
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:77:in `worker_loop' 
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads' 

Я давно не менял конфигурацию этого сервера в отношении Docker. Я обновил ядро, PHP и другие службы, находящиеся за пределами этого Docker-контейнера.

Проблема стала возникать чаще после обновления сборки Discourse. До этого всё работало стабильно.

В качестве DNS я использую 8.8.8.8 и 8.8.4.4.

Буду признателен за любые подсказки!

Если Sidekiq потребляет слишком много памяти, это может привести к перезапуску Discourse, что может прервать запланированные задачи отправки электронной почты. Discourse включает функцию автоматического перезапуска, если использование памяти Sidekiq превышает определенный порог.

Чтобы решить эту проблему, проверьте настройку UNICORN_SIDEKIQ_MAX_RSS в вашем файле app.yml. Если значение слишком низкое, рассмотрите возможность его увеличения.

Для дальнейшего обсуждения этой проблемы вы можете обратиться к этой теме:
Sidekiq потребляет слишком много памяти — перезапуск.

Я сейчас изменю эту настройку и отменю изменения, если проблемы продолжатся.

Уф, прошло чуть больше 24 часов, и я снова не справился с электронной почтой…

Jobs::HandledExceptionWrapper: Wrapped Net::OpenTimeout: execution expired

Убедитесь, что SMTP-сервер доступен из вашего экземпляра Discourse
telnet DISCOURSE_SMTP_ADDRESS DISCOURSE_SMTP_PORT

Я снова дождусь сбоя и повторю попытку.

У меня на том же VPS установлена XenForo без Docker, и она не жалуется.

Сообщу о результатах. Благодарю за оказанную до сих пор помощь.

Я могу подключиться к SMTP-серверу.

Пару раз произошла ошибка подряд, а потом около 8 часов ничего не происходило