У меня только что был самый странный опыт при простой перезагрузке экземпляра Amazon Lightsail.
Перезагрузил… ждал перезапуска.
На некоторых (предположительно не кэшированных) страницах появилось сообщение об ошибке «502 Gateway Error - Nginx». Немного подождал…
Запустил rebuild Discourse через оболочку.
Появилось сообщение об ошибке: rebuild не удался.
Использовал ./discourse-doctor — тоже не сработало.
Отключил неофициальные плагины и запустил rebuild снова — тоже не сработало.
Подумал, что всё пропало. Продолжая исследования, я снова проверил форум и обнаружил, что он работает нормально. Это совершенно не имеет смысла, учитывая, что ответ документации Discourse был мгновенным и гласил: ВНИМАНИЕ! Приложение даже не запущено!
Моя теория: проблема, скорее всего, связана с лимитами burst-режима Amazon, а не с чем-то другим. Перезагрузка могла перегрузить сервер, что вызвало первоначальные проблемы с ошибками 502. А rebuild, вероятно, поднял нагрузку на сервер до 70–80% от burst-лимитов, и, возможно, не хватило системных ресурсов для выполнения скриптов rebuild?
Так что мой главный вопрос (поскольку это проблема, преследующая процесс rebuild при обновлении): можно ли ограничить нагрузку скриптов обновления на сервер, чтобы он не сходил с ума? Я имею в виду, что это экземпляр с 8 ГБ оперативной памяти, так что он не такой уж слабый и т.д.
Спасибо… и теперь я принял две таблетки Ативана совершенно зря.
Я попробую другое обновление вскоре и обновлю эту информацию. Я не сохранил файл журнала, а запуск обновлений сильно истощает мой запас буста (особенно после трёх запусков подряд), поэтому мне пришлось подождать день или около того, чтобы восстановить уровень буста.
Seeding default
*** Bundling assets. This will take a while ***
$ RUBY_GC_MALLOC_LIMIT_MAX=20971520 RUBY_GC_OLDMALLOC_LIMIT_MAX=20971520 RUBY_GC_HEAP_GROWTH_MAX_SLOTS=50000 RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0.9 bundle exec rake themes:update assets:precompile
Updating Dark...
Failed to update Dark
about.json contains invalid values: Maximum discourse version is invalid
И теперь мой форум полностью недоступен и выдаёт ошибку 500.
Почему это могло произойти? Мне казалось, что обновление заменяет текущий работающий форум только после завершения процесса и не должно вызывать проблем?
Компонент темы устарел, и Discourse отказывается его использовать.
Однако, если вы выполните ./launcher rebuild app, это остановит контейнер для сборки нового (так как используются те же файлы базы данных). Если сборка завершится ошибкой, вам нужно будет перезапустить контейнер, чтобы снова запустить его.
Да, я заметил, что обновление на самом деле было завершено по всем остальным элементам, как только я удалил компоненты «Тёмный логотип» и «Альтернативный логотип». Всё обновилось на экране обновлений.