Discourse застрял в режиме обслуживания

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

Моя сессия истекла, и я был разлогинен; теперь я не могу войти снова.

Я могу подключиться к серверу Discourse через SSH.
Я попробовал следующие шаги:

  1. Подключиться к серверу Discourse через SSH
  2. Перейти в /var/discourse/
  3. Выполнить: ./launcher enter app
  4. Выполнить rails c

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

[1] pry(main)> 
[2] pry(main)> 
[3] pry(main)> Discourse.disable_readonly_mode(Discourse::READONLY_MODE_KEY)
=> true
[4] pry(main)> Discourse.disable_readonly_mode
=> true

Когда я переключаю фокус с SSH на веб-браузер, я вижу, что баннер режима обслуживания исчезает.

Затем через несколько секунд он появляется снова.

Я уже ознакомился со следующими документами:

Пожалуйста, помогите.

Кто-то в первой связанной теме добился успеха, остановив и затем снова запустив контейнер. Стоит ли попробовать?

Спасибо за предложение. К сожалению, это мне не помогло :frowning:

Я выполнил:

docker ps
docker kill app
docker start app

Интересно то, что я также пробовал вручную включить режим только для чтения:
например:

[8] pry(main)> Discourse.enable_readonly_mode
=> true
[9] pry(main)> Discourse.disable_readonly_mode
=> true
[10] pry(main)> 

После этого я заметил, что баннер появляется снова, и я даже не могу нажать кнопку входа, потому что там написано: Вход в систему отключен, пока сайт находится в режиме только для чтения. Также я вижу баннер с сообщением:

Этот сайт находится в режиме только для чтения. Пожалуйста, продолжайте просмотр, но ответы, лайки и другие действия временно отключены.

Когда я снова вызываю disable_readonly_mode, баннер режима обслуживания исчезает, и я могу нажать кнопку входа. Discourse даже перенаправляет меня к провайдеру аутентификации SSO.

Однако, когда меня перенаправляют обратно в Discourse, я вижу целую страницу с сообщением: «Сайт находится в режиме только для чтения. Взаимодействия отключены.»

Я немного покопался, и хотя я пока не нашел исправления, похоже, что ссылка /u/admin-login обойдет режим только для чтения и позволит вам все еще войти в систему:

@41821 Можете попробовать Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)

Ничто из того, что я предпринял, не помогло вывести систему из состояния только для чтения.
После выполнения Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY) режим на секунду переключается на чтение/запись, но сразу после этого возвращается обратно к режиму только для чтения. В логах ничего примечательного не обнаружено. Даже очистка Redis не помогает, как и ручное удаление ключей Redis.

Скорее всего, это ошибка, так как откат с версии 2.8.7 до 2.8.3 (которая была моей предыдущей рабочей версией) исправил проблему.

Я пытался изучить код, чтобы выяснить, где была внесена ошибка, но так и не смог этого сделать.

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