이메일 실패 작업

안녕하세요!

Discourse 빌드: 3.5.0.beta2-dev(176ee0bf60)
호스팅 환경: VPS - Centminmod (131.00stable) on Alma8
문제: 이메일 전송이 주기적으로 실패함

이 VPS에는 두 개의 vHost가 있습니다. 하나는 Xenforo, 다른 하나는 Discourse입니다.

Xenforo는 24시간 내내 문제없이 이메일을 잘 전송합니다. 그러나 Discourse는 약 24시간마다 "There are [number that increases] email jobs that failed. Check your app.yml and ensure that the mail server settings are correct. See the failed jobs in Sidekiq."라는 오류 메시지와 함께 실패하는 것 같습니다.

docker 서비스를 재시작하면 문제를 일시적으로 "해결"할 수 있습니다. 그러면 이메일 전송이 다시 정상적으로 이루어집니다.

메일 설정이 정확하다는 것을 확신합니다. docker 서비스를 재시작한 후에는 admin → email → server setup & logs → settings 페이지에 접속하여 테스트 이메일을 전송할 수 있습니다.

하지만 문제가 발생하면 전송할 수 없습니다.

Sidekiq이 Fastserver-app 재시작을 위해 너무 많은 메모리(5xxM 사용)를 사용하고 있다는 메시지가 많이 표시됩니다.

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'

또한 Job exception: no address for 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 관련 서버 설정은 이미지가 변경된 지 꽤 되었습니다. docker 외부의 커널, PHP 및 기타 서비스는 업데이트했습니다.

이 문제는 Discourse 빌드를 업데이트한 후 최근 더 자주 발생하고 있습니다. 이전에는 안정적으로 작동했습니다.

DNS로 8.8.8.8과 8.8.4.4를 사용 중입니다.

도움이 될 만한 조언을 주시면 감사하겠습니다!

Sidekiq가 메모리를 과도하게 사용하면 Discourse가 재시작되어 예약된 이메일 작업이 중단될 수 있습니다. Discourse에는 Sidekiq의 메모리 사용량이 정의된 임계값을 초과할 경우 자동으로 재시작하는 기능이 포함되어 있습니다.

이 문제를 해결하려면 app.yml 파일의 UNICORN_SIDEKIQ_MAX_RSS 설정을 확인하십시오. 값이 너무 낮다고 판단되면 값을 높이는 것을 고려해 보세요.

이 문제에 대한 추가 논의는 다음 주제를 참고하십시오:
Sidekiq is consuming too much memory - restarting.

지금 해당 설정을 조정할 것이고, 문제가 계속되면 되돌리겠습니다

아이고, 정확히 24시간이 지난 후에 이메일 전송이 실패했습니다 …

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

Discourse 인스턴스에서 SMTP 서버에 접근할 수 있는지 확인하세요
telnet DISCOURSE_SMTP_ADDRESS DISCOURSE_SMTP_PORT

다시 실패를 기다린 후 재시도하겠습니다.

같은 VPS에 Docker를 사용하지 않고 설치한 Xenforo가 있는데, 여기서는 문제가 발생하지 않습니다.

결과를 다시 보고드리겠습니다. 지금까지의 도움에 감사드립니다.

SMTP 서버에 접속할 수 있습니다.

연속으로 몇 번 실패한 후, 이제 8시간 정도 아무 일도 일어나지 않고 있습니다.