Ошибка сегментации Ruby on Rails / Devise smtp.rb - PullRequest
0 голосов
/ 02 ноября 2011

Я провел немало исследований по этой проблеме и не смог решить мою проблему. Я использую Rails 3.0.3, Ruby 1.8.7 (уровень патча 334), Apache, Passenger 3.0.7 и гем Devise 1.1.8. Кроме того, я использую Gmail для отправки писем. Когда я пытаюсь отправить сброс пароля, я получаю сообщение об ошибке в моем Apache error_log:

[вторник, 01:40:31 2011] [error] Преждевременное завершение заголовков скриптов: пользователи [pid = 9371 thr = 3084437904 file = ext / apache2 / Hooks.cpp: 822 time = 2011-11-01 19: 40: 31.664]: внутреннее приложение (процесс 9569) не отправило действительный ответ HTTP; вместо этого это вообще ничего не отправляло. Возможно, что он разбился; пожалуйста, проверьте, есть ли ошибки в этом приложении.

Из моего исследования я обнаружил одну причину, по которой это может быть связано с тем, что Ruby on Rails ищет версию OpenSSL с ошибками. Я попытался предложить добавить это в мой файл .bashrc:

export RUBYOPT = "- ropenssl"

Также я попытался обновить конфигурацию SMTP в моем production.rb, чтобы не использовать TLS:

: enable_starttls_auto => false

Моя полная конфигурация SMTP:

config.action_mailer.default_url_options = { :host => '<domain>' }
  ActionMailer::Base.smtp_settings = {
  :enable_starttls_auto => false,
  :address => "smtp.gmail.com",
  :port => 587,
  :domain => <domain>,
  :user_name => <username>,
  :password => <password>,
  :authentication => "plain" 
}

Кажется, ни одно из найденных мной предложений не сработало. Я не уверен, куда идти отсюда, поскольку это единственные предложения и исправления, которые я нашел. Это работает без каких-либо проблем на моей машине разработки. Который работает под управлением тех же версий всех вышеперечисленных, кроме Apache / Passenger, который я не использую локально.

Mike

1 Ответ

0 голосов
/ 02 ноября 2011

Мне удалось это исправить, обновив гем Devise до версии 1.4.8.Однако после обновления я получил сообщение об ошибке «неопределенный метод` new_session_path '».Затем я обновился до версии 1.4.9 Devise, и теперь все работает нормально.Надеюсь, это кому-нибудь поможет.

Майк

...