В Rails 4 on Passenger - сбрасывается переменная сеанса - как устранить неполадки? - PullRequest
0 голосов
/ 09 июля 2020

Мы на Rails 4.1.14.2, Ruby 2.1.0 (да, я знаю ...) Хранилище сессий - Dalli 2.7.2. Сервер приложений - это Passenger Phusion 5.3.4.

  1. У нас есть действие контроллера, вызываемое через AJAX, которое добавляет запись в список (детали не важны)
  2. Каждый раз, когда действие выполняет, он обновляет переменную сеанса следующим образом: session[:myvar] = SecureRandom.uuid
  3. Спорадически , без видимого шаблона, эта переменная сеанса сбрасывается до одного из своих предыдущих значений! Это происходит после нескольких запусков действия - опять же, никакого шаблона для него.

Мои действия по устранению неполадок на данный момент:

  1. Определено, что других мест нет session[:myvar]
  2. Обернул установку / получение session[:myvar] в методах, чтобы я мог регистрировать такие вещи, как идентификатор объекта сеанса
  3. Устранено состояние гонки: а) не выполняются перекрывающиеся вызовы, б) значение session[:myvar] сбрасывается до одного из своих предыдущих (сгенерированных случайным образом) значений, а не нового.

Мои вопросы:

  1. Кто-нибудь видел что-нибудь подобное раньше и выяснил, что происходит?
  2. Как я могу это устранить? Есть ли у меня способ go под капотом и трассировки управления значениями Rails в сеансе?

Спасибо

...