Недавно я получил уведомление по электронной почте о том, что мой саморазмещённый сайт Discourse (Ubuntu 18.04.6 на Contabo) требует обновления, поэтому я перешёл на страницу администратора, чтобы обновить его. Как обычно, сначала нужно было обновить docker-manager, а затем выполнить остальную часть обновления сайта. Это обновление, казалось, застыло на месте — оно достигло определённой точки и больше не двигалось. После примерно часа ожидания я решил, что требуется вмешательство через CLI, поэтому подключился к серверу по SSH и выполнил команды: cd /var/discourse; git pull; ./launcher rebuild app. Выполнение прошло без видимых ошибок, но теперь у меня есть сайт, который выглядит так:
(точки на самом деле анимированы). Думая, что программное обеспечение просто тратит время на запуск, я ждал — на самом деле более суток — но изменений не последовало. Перезагрузка сервера не помогла, как и повторная пересборка.
Интересно, что мои пользователи всё ещё могут публиковать сообщения по электронной почте, и сайт отправляет их, как и положено.
Буду признателен за подсказки — что я могу сделать, чтобы вернуть сайт в рабочее состояние?
Если в безопасном режиме всё работает, значит, конфликт может вызывать какой-то плагин, тема или компонент темы. На экране безопасного режима вы можете использовать доступные опции, чтобы сузить круг поиска.
Отключение только «неофициальных плагинов», похоже, помогает:
А в консоли браузера при попытке загрузить ваш сайт вне безопасного режима я вижу следующую ошибку:
Uncaught (in promise) Error: Could not find module `admin/models/admin-user` imported from `discourse/plugins/discourse-merge-users/discourse/components/merge-users-form`
c loader.js:247
c loader.js:258
findDeps loader.js:168
c loader.js:262
requireModule loader.js:24
Ember 3
resolveOther resolver.js:241
Ember 5
initialize colocated-template-overrides.js:31
eachThemePluginTemplate colocated-template-overrides.js:41
initialize colocated-template-overrides.js:22
initialize app.js:41
runInstanceInitializers Ember
each dag-map.js:192
walk dag-map.js:121
each dag-map.js:66
topsort dag-map.js:72
Ember 4
invoke queue.ts:201
flush queue.ts:98
flush deferred-action-queues.ts:75
_end index.ts:616
_boundAutorunEnd index.ts:257
promise callback*n/< platform.ts:28
flush Ember
_scheduleAutorun index.ts:803
_ensureInstance index.ts:791
schedule index.ts:384
Ember 6
<anonymous> start-app.js:4
<anonymous> discourse-boot.js:18
<anonymous> discourse-boot.js:19
loader.js:247
Это указывает на проблему с плагином discourse-merge-users. Попробуйте пересобрать систему без этого плагина, чтобы проверить, в нём ли дело.
При проверке темы плагина видно, что он устарел, и это известная проблема:
Действительно, похоже, что проблема была именно в этом: повторная сборка без него решает вопрос. Хотя интересно, что в обсуждении, которое вы поделили, указано, что проблема возникает, когда пользователь не является администратором, а я им являюсь. Но после отключения плагина сайт снова работает нормально. Спасибо за быструю и точную помощь.