После обновления приложения Rails с RestfulAuthentication и Rails 2.3 до Devise и Rails 5.0 мы получаем странные ошибки «401 Unauthorized», и приложение rails зависает при первом же запросе:
Completed 401 Unauthorized in x ms
где х очень большое число. Ошибка возникает только при первом запуске сервера (после длительного простоя). Приложение просто зависает и отказывается запускаться, а если мы прерываем работу сервера, то появляются ошибки 401 Unauthorized. Кажется, не имеет значения, используем ли мы Webrick, Puma, Thin или Unicorn. ApplicationController выглядит так
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :set_http_headers
alias login_required authenticate_user!
...
(псевдоним был добавлен, чтобы гарантировать плавный переход на Devise). Конфигурационный файл database.yml выглядит так
development:
adapter: mysql2
encoding: utf8
database: db_name
pool: 5
timeout: 5000
username: db_user
passwort:
После запуска приложения ошибки исчезают, но если мы перезагрузим компьютер через несколько часов или на следующий день, ошибка появится снова.
Иногда также возникают ошибки тайм-аута, такие как
ActiveRecord::ConnectionTimeoutError: could not obtain a connection from the pool within 5.000 seconds (waited 5.003 seconds); all pooled connections were in use
or
No live threads left. Deadlock? (fatal)
Связанные с Devise проблемы (здесь и здесь) не помогают, и ни один из связанных вопросов не дал решения, ни ActiveRecord::Base.clear_active_connections! не помогает, как было предложено здесь и Session.delete_all (сессия хранится в ActiveRecord). Помощь! Любые идеи?
database.ymlи, возможно, файлыmy.cnf- я подозреваю, что это просто где-то ошибка конфигурации. - person Thilo   schedule 07.09.2016