Ruby on rails Rails邮件程序:Errno::EPIPE

Ruby on rails Rails邮件程序:Errno::EPIPE,ruby-on-rails,ruby,Ruby On Rails,Ruby,我们使用的是经典的Rails架构 AWS EC2作为Web服务器主机 AWS弹性缓存 美洲狮 西德基 当我们的应用程序中出现一些通知时,我们的web应用程序将通过Sidekiq作业向客户发送电子邮件通知。问题是,我们的监控工具显示,在生产环境中,我们的电子邮件发送作业发生了许多错误 错误跟踪 这似乎是系统级或库级错误,而不是应用程序级错误 登台环境看起来不错,为什么它只发生在我们的生产EC2节点上 如何修复它 SMTP服务器上似乎存在超时问题。有没有收到邮件?如果是,则营救EPIPE并重

我们使用的是经典的Rails架构

  • AWS EC2作为Web服务器主机
  • AWS弹性缓存
  • 美洲狮
  • 西德基
当我们的应用程序中出现一些通知时,我们的web应用程序将通过Sidekiq作业向客户发送电子邮件通知。问题是,我们的监控工具显示,在生产环境中,我们的电子邮件发送作业发生了许多错误

错误跟踪 这似乎是系统级或库级错误,而不是应用程序级错误

  • 登台环境看起来不错,为什么它只发生在我们的生产EC2节点上
  • 如何修复它

SMTP服务器上似乎存在超时问题。有没有收到邮件?如果是,则营救EPIPE并重试。如果没有,则说明某个位置存在配置错误。SMTP服务器上似乎存在超时问题。有没有收到邮件?如果是,则营救EPIPE并重试。如果否,则说明某个地方存在配置错误。
Errno::EPIPE
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/openssl/buffering.rb:325:in `syswrite'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/openssl/buffering.rb:325:in `do_write'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/openssl/buffering.rb:449:in `flush'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/smtp.rb:909:in `ensure in block in data'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/smtp.rb:910:in `block in data'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/smtp.rb:960:in `critical'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/smtp.rb:898:in `data'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/smtp.rb:659:in `block in send_message'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/smtp.rb:854:in `rcptto_list'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/smtp.rb:659:in `send_message'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp_connection.rb:54:in `deliver!'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:101:in `block in deliver!'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/net/smtp.rb:519:in `start'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:109:in `start_smtp_session'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/mail-2.7.1/lib/mail/network/delivery_methods/smtp.rb:100:in `deliver!'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/mail-2.7.1/lib/mail/message.rb:2159:in `do_delivery'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/mail-2.7.1/lib/mail/message.rb:260:in `block in deliver'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/actionmailer-5.1.7/lib/action_mailer/base.rb:558:in `block in deliver_mail'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `block in instrument'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `instrument'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/actionmailer-5.1.7/lib/action_mailer/base.rb:556:in `deliver_mail'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/mail-2.7.1/lib/mail/message.rb:260:in `deliver'
/home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/delegate.rb:83:in `method_missing'
/var/www/small_app/releases/20200305040938/app/jobs/email_notifications_job.rb:13:in `perform'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activejob-5.1.7/lib/active_job/execution.rb:37:in `block in perform_now'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/callbacks.rb:108:in `block in run_callbacks'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/i18n-1.7.0/lib/i18n.rb:297:in `with_locale'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activejob-5.1.7/lib/active_job/translation.rb:7:in `block (2 levels) in <module:Translation>'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/callbacks.rb:117:in `instance_exec'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activejob-5.1.7/lib/active_job/logging.rb:24:in `block (4 levels) in <module:Logging>'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `block in instrument'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/notifications.rb:166:in `instrument'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activejob-5.1.7/lib/active_job/logging.rb:23:in `block (3 levels) in <module:Logging>'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activejob-5.1.7/lib/active_job/logging.rb:44:in `block in tag_logger'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/tagged_logging.rb:69:in `block in tagged'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/tagged_logging.rb:26:in `tagged'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activesupport-5.1.7/lib/active_support/tagged_logging.rb:69:in `tagged'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activejob-5.1.7/lib/active_job/logging.rb:44:in `tag_logger'
/var/www/small_app/shared/bundle/ruby/2.5.0/gems/activejob-5.1.7/lib/active_job/logging.rb:20:in `block (2 le...
class EmailNotificationsJob < ApplicationJob
  queue_as :default

  def perform(ntf_id)
    UserMailer.notification(ntf_id).deliver
  end
end
NAME="Amazon Linux AMI"
VERSION="2016.09"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2016.09"
PRETTY_NAME="Amazon Linux AMI 2016.09"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2016.09:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"