Как обычно, я немного раскрою суть проблемы, превратив её в почти увлекательную историю о 3–5 точках отказа.
После четырёх часов расследования где-то в полночь это уже не так весело. Часть информации, вероятно, технически неточна, но так текст читается интереснее, пусть и с возможными ошибками.
Базовые факты (извините за пояснения): мой SSO перенаправляет на мой домашний сервер (после того как Gandi несколько лет назад не смог решить некоторые вопросы, я перешёл на Dynadot). Также перенаправление работает лучше, чем когда Hostpapa купила очень надёжный хостинг LFC, и ты не мог быть уверен, что они не обновят что-то незаметно, из-за чего вся твоя инфраструктура может рухнуть.
Теперь о 3 (или можно ли считать это отказом в 5 точках? Тогда это был бы новый рекорд)
1*) Opera сегодня снова обновилась, и, по всей видимости, добавила какой-то код, который очень (не)любит перенаправления 301/302 и жёстко их кэширует (что-то связанное с Chromium).
2*) У Dynadot, судя по всему, была задержка более 30 секунд сегодня ночью (именно столько нужно, чтобы спровоцировать проблему с Chromium, которая теперь закэшировалась, ой-ой).
3*) Discourse упал (та самая ошибка, о которой я упоминал выше), потому что не смог получить доступ к SSO в течение 30 секунд. Пришлось перезапустить приложение, но я на самом деле не уверен, был ли Discourse недоступен до перезапуска или нет (я был в панике
). Gemini, основываясь на логах, заставлял меня крутиться вокруг sso/rails/redis и так далее. Это произошло после того, как я попытался обновить систему, но я упоминаю об этом в этом пункте, чтобы сохранить связность повествования.
4*) Поскольку я не мог понять, что пошло не так, я просто перезагрузил Linux «на всякий случай» и начал обновлять Discourse. Это не удалось из-за проблемы с GitHub. И да, сначала пришлось немного почистить диски, как обычно, но я никогда не доходил до 0 ГБ, что могло бы стать возможной причиной проблем с redis. И да, теперь, когда всё кажется стабильным, я добавлю 10 ГБ в облаке и, возможно, обновлю Arkshine.
5*) Это, так сказать, та же самая проблема, что и в пункте 1, но пока я пытался решить все эти вопросы, я постоянно делал жёсткое обновление страницы, чтобы проверить, не починилось ли что-нибудь. Я подозреваю, что я постоянно сталкиваюсь с закэшированным перенаправлением от первоначального сбоя, что означает, что я даже не могу увидеть, решена ли проблема, даже после первого перезапуска.
- Я могу нормально получить доступ к моему SSO.
- Другой сайт с другим доменом, не использующий SSO, тоже работает нормально.
- Отключение SSO для Discourse показывает форум, но у меня никогда не работали обычные логины, так что это не очень помогает. Но хотя бы теперь я знаю, что проблема действительно в SSO.
- Gemini предложил протестировать в режиме инкогнито, так что я запустил Firefox, и, что за…, форум работает просто отлично. Отлично, кроме… чего?
- Opera по-прежнему не работает. Да, я подозреваю, что она всё ещё кэширует перенаправление, но тогда я этого не знал. Я пока не собираюсь очищать куки сайта, кэш и т.д.
- Поскольку всё заработало, я проделал необходимую работу, которую на самом деле собирался делать, используя Firefox в течение получаса.
- Перезапустил Opera, и, вуаля, форум отобразился. Возможно, я перезапускал Opera раньше, не помню, но, может быть, кэш просто истёк, и произошло правильное обновление.
Смешно, но сегодня утром я проснулся, и Opera снова обновилась. Может быть, это обновление с жёстким кэшированием создало много проблем и в других местах
.
Дополнительное примечание: пункт 3) — это, конечно, самая интересная часть для нас. Возможно, это всё ещё можно найти в логах (могу покопаться, если нужно). Если Discourse падает, пытается ли он перезапуститься с помощью какого-то таймера? Или весь сайт был недоступен, пока я не зашёл и не перезапустил приложение?