Здравствуйте, мой сервер Discourse застрял в режиме обслуживания.
Я намеренно оставил его в режиме обслуживания в течение нескольких месяцев, и за это время я обновил его до множества версий после первоначальной установки в этот режим.
Моя сессия истекла, и я был разлогинен; теперь я не могу войти снова.
Я могу подключиться к серверу Discourse через SSH.
Я попробовал следующие шаги:
Подключиться к серверу Discourse через SSH
Перейти в /var/discourse/
Выполнить: ./launcher enter app
Выполнить rails c
Я попробовал несколько способов отключить режим обслуживания здесь.
После этого я заметил, что баннер появляется снова, и я даже не могу нажать кнопку входа, потому что там написано: Вход в систему отключен, пока сайт находится в режиме только для чтения. Также я вижу баннер с сообщением:
Этот сайт находится в режиме только для чтения. Пожалуйста, продолжайте просмотр, но ответы, лайки и другие действия временно отключены.
Когда я снова вызываю disable_readonly_mode, баннер режима обслуживания исчезает, и я могу нажать кнопку входа. Discourse даже перенаправляет меня к провайдеру аутентификации SSO.
Однако, когда меня перенаправляют обратно в Discourse, я вижу целую страницу с сообщением: «Сайт находится в режиме только для чтения. Взаимодействия отключены.»
Я немного покопался, и хотя я пока не нашел исправления, похоже, что ссылка /u/admin-login обойдет режим только для чтения и позволит вам все еще войти в систему:
Ничто из того, что я предпринял, не помогло вывести систему из состояния только для чтения.
После выполнения Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY) режим на секунду переключается на чтение/запись, но сразу после этого возвращается обратно к режиму только для чтения. В логах ничего примечательного не обнаружено. Даже очистка Redis не помогает, как и ручное удаление ключей Redis.
Скорее всего, это ошибка, так как откат с версии 2.8.7 до 2.8.3 (которая была моей предыдущей рабочей версией) исправил проблему.
Я пытался изучить код, чтобы выяснить, где была внесена ошибка, но так и не смог этого сделать.
Это самохостинговый сайт? Очистка Redis должна решить проблему, так как логика только для чтения полностью зависит от установки правильных ключей Redis.