Поворот Sphinx Delta во время переиндексации обновляет все пользовательские записи, меняющие токен сохранения

#ruby-on-rails #ruby #ruby-on-rails-3 #authlogic #thinking-sphinx

#ruby-on-rails #ruby #ruby-on-rails-3 #authlogic #мышление-sphinx

Вопрос:

Я испытываю странную проблему с моей настройкой sphinx в моей промежуточной среде, где каждые пару минут мой cronjob запускает переиндексацию, и во время дельта-поворота каждая пользовательская запись обновляется, изменяя их токен сохранения. Это приводит к прекращению всех пользовательских сеансов с authlogic из-за измененного токена сохранения.

Я не смог найти способ исправить это или точно объяснить, почему это происходит, кроме того, что это происходит во время поворота пользовательского индекса. Я был на версии 2.0.5 и обновился до 2.0.10, но это не решает проблему. Что очень странно, так это то, что моя производственная среда работает нормально и не сталкивается с этой проблемой при идентичной конфигурации сервера / gemfile. Мы не можем обновить рабочую среду, пока не решим эту проблему, чтобы убедиться, что это не начнет происходить на нашем рабочем сервере.

Любая помощь в поиске причины или решения была бы высоко оценена.

Я не совсем понимаю, почему переиндексация приведет к обновлению всех пользовательских записей и изменению их токена сохранения.

Не должен ли атрибут delta быть единственным атрибутом, обновляемым в пользовательских записях при переиндексации?

Возможно, Authlogic вызывает обновление токена сохранения также во время обновления атрибута delta по какой-то неизвестной причине? Я пробовал обе последние версии Authlogic 3.0.3 и 3.1.0, но это также не устранило проблему.

Ответ №1:

Удалось отследить это до инициализатора, который обновлял всех промежуточных пользователей каждый раз, когда запускался новый экземпляр passenger. Это не связано со sphinx и вызвано тем, как Authlogic сгенерировал токены сохранения при смене пароля.