Мы на Rails 4.1.14.2, Ruby 2.1.0 (да, я знаю ...) Хранилище сессий - Dalli 2.7.2. Сервер приложений - это Passenger Phusion 5.3.4.
- У нас есть действие контроллера, вызываемое через AJAX, которое добавляет запись в список (детали не важны)
- Каждый раз, когда действие выполняет, он обновляет переменную сеанса следующим образом:
session[:myvar] = SecureRandom.uuid
- Спорадически , без видимого шаблона, эта переменная сеанса сбрасывается до одного из своих предыдущих значений! Это происходит после нескольких запусков действия - опять же, никакого шаблона для него.
Мои действия по устранению неполадок на данный момент:
- Определено, что других мест нет
session[:myvar]
- Обернул установку / получение
session[:myvar]
в методах, чтобы я мог регистрировать такие вещи, как идентификатор объекта сеанса - Устранено состояние гонки: а) не выполняются перекрывающиеся вызовы, б) значение
session[:myvar]
сбрасывается до одного из своих предыдущих (сгенерированных случайным образом) значений, а не нового.
Мои вопросы:
- Кто-нибудь видел что-нибудь подобное раньше и выяснил, что происходит?
- Как я могу это устранить? Есть ли у меня способ go под капотом и трассировки управления значениями Rails в сеансе?
Спасибо