Рельсы InvalidAuthenticityToken в случайное время - PullRequest
3 голосов
/ 06 августа 2010

Вот сделка.

Наше приложение работает и используется авторами для отправки контента для веб-сайта. Проблема заключается в том, что время от времени наши авторы получают сообщение об ошибке после отправки формы для любого ресурса на сайте. Ошибка после проверки производственных журналов была старой доброй InvalidAuthenticityToken.

Проблема в том, что они не меняют токен, они не делают недействительной форму, они ничего не делают, но пишут в редакторе и нажимают кнопку "Отправить"!

Ошибка кажется совершенно случайной, иногда она возникает, иногда нет: / Все, что я знаю, это то, что это происходит при редактировании или создании элемента, поэтому запросы POST или PUT, но проблема в том, что это не в одной конкретной области приложения, а просто в конечном итоге время от времени происходит во всех наших формах.

Нашей средой является HAProxy, обслуживающий mongrel_cluster, в котором 20 приложений работают с нашим приложением. Версия Rails 2.3.8

Может ли это быть проблемой с сессиями в разных дворнягах? Если нет, что я могу сделать, чтобы остановить эти случайные ошибки, из-за которых писатели иногда теряют много времени на редактирование текста и просто теряют его из-за этой чертовой ошибки.

Любая помощь очень ценится.

1 Ответ

3 голосов
/ 06 августа 2010

Проблема оказалась намного проще, чем я ожидал.

Таймер сеанса был установлен на 900 секунд, и иногда писателям требовалось больше времени, чем редактированию текста на той же странице, без какой-либо другой навигации по сайту.

Это делало сеанс недействительным из-за тайм-аута, а затем, когда, наконец, форма была отправлена, часть сеанса маркера подлинности была сброшена, поэтому возникла ошибка InvalidAuthenticityToken.

...