Обновление с 2.9.0.beta8 сломало сайт, восстановление невозможно

Привет

Мы просто нажали кнопку обновления администратора.
Не ожидали такого:

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

Подробная информация об ошибке была записана в лог, и автоматически сформировано уведомление. Мы разберёмся в этом.

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

Теперь, хотя это немного обескураживает (что, если это произойдёт, когда на сайте будет несколько тысяч пользователей?)… у нас пока нет пользователей. Повезло. Но мы не можем вернуть сайт в рабочее состояние. Никакой явной ошибки не видно, никаких шагов для восстановления того, что пошло не так… если только не считать зловещее «автоматически сформировано уведомление». Кто получил это уведомление? Что в нём написано? Почему простое обновление программного обеспечения отправляет сайт в небытие? Как мы можем это исправить?

Вы все еще можете получить доступ к /logs на вашем форуме? Именно туда ушло уведомление.

На последние два вопроса можно ответить только после того, как вы его просмотрите.

К сожалению, ничего больше не работало. Поэтому нам пришлось заново запустить резервный сервер, и теперь мы с осторожностью относимся к повторным обновлениям.

Есть ли способ обновиться в безопасном режиме? Вряд ли можно допустить, чтобы при каждом обновлении программного обеспечения мы рисковали полным простоем.

Это реальный риск для любого приложения, включая Discourse. Вот почему крупные компании используют тестовые серверы, а мы, мелкие игроки, делаем резервные копии (сайта И базы данных) перед каждым обновлением, но хотя бы перед любым обновлением.

Привет и добро пожаловать, @smileBeda :slightly_smiling_face:

Не могли бы вы рассказать подробнее о вашей конфигурации? Например, какая у вас версия, является ли установка стандартной и есть ли у вас какие-либо плагины (официальные или сторонние).

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

Мы используем версию 2.9.0.beta8
Обновление, которое нам предлагается выполнить, — docker_manager 45986ad4 (Comparing 45986ad40ec642ea617a083aecc75e0078878fb7...90a8a6c6cae0bba01de7fdf340da1ab878bff913 · discourse/docker_manager · GitHub)

Это стандартная установка через Docker, однако у нас установлено несколько плагинов (но ничего необычного, действительно. Пока никакого кастомного кода нет).

На данный момент (без лога ошибок) я не могу сказать больше. Думаю, нам снова придётся рискнуть: сделать резервную копию, выполнить обновление и, если оно снова не удастся, отправить логи…

Можете ли вы опубликовать здесь ваш файл app.yml? Это поможет легче понять, что было и что есть сейчас.

Также в этой теме есть несколько полезных советов о том, как обновить сервер вручную:

Команда ./launcher rebuild app часто может стать хорошим планом Б, а если при её выполнении возникнут ошибки, вы можете прокрутить сообщение вверх и ознакомиться с ними.

Вы выполнили

 ./launcher rebuild app

или обновились через веб-интерфейс? Иногда требуется полная пересборка.

Журналы, которые вы ищете, находятся в

     /var/discourse/shared/log/rails/production.log

(если я правильно набрал это на телефоне)

Довольно близко :grin:
/var/discourse/shared/standalone/log/rails/production.log
и, возможно,
/var/discourse/shared/standalone/log/rails/production_errors.log

Не могли бы вы уточнить это? Какие именно плагины?

Это именно то, что я тоже думаю, поэтому я попросил их вставить/поделиться своим файлом app.yml