Ошибка обновления

Сегодня при обновлении я получил эту ошибку:

FAILED -------------------- Pups::ExecError: cd /var/www/discourse && su discourse -c ‘bundle exec rake db:migrate’ failed with return #<Process::Status: pid 1494 exit 1> Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’ exec failed with the params {“cd”=>“$home”, “hook”=>“db_migrate”, “cmd”=>[“su discourse -c ‘bundle exec rake db:migrate’”]} bootstrap failed with exit code 1 ** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one. ./discourse-doctor may help diagnose the problem. 77d614688bcd29bc5bb4ee1b28ed08423dea795d5f25b985e245390dd5707ad9

Не могли бы вы прокрутить вверх, посмотреть, какие сообщения об ошибках вы получили, и поделиться ими здесь?

Я поискал в логе ошибку и обнаружил следующее:

ERROR: duplicate key value violates unique constraint “index_badges_on_name” 2022-11-24 14:43:25.194 UTC [1522] discourse@discourse DETAIL: Key (name)=(First Reaction) already exists. 2022-11-24 14:43:25.194 UTC [1522] discourse@discourse STATEMENT: UPDATE badges SET name = ‘First Reaction’, description = NULL, long_description = NULL WHERE name = ‘Primera reacción’ rake aborted! StandardError: An error has occurred, this and all later migrations canceled: ERROR: duplicate key value violates unique constraint “index_badges_on_name” DETAIL: Key (name)=(First Reaction) already exists.

О, это, должно быть, связано с FIX: Use generic, static name for badge · discourse/discourse-reactions@c648af5 · GitHub.

Я не учёл тот факт, что значок «First Reaction» уже существует. Ранее плагин создавал новый значок при каждом изменении перевода, поэтому появление нескольких значков было возможно. Я исправлю миграцию…

Спасибо! Стоит ли подождать исправления, а затем пересобрать приложение?

Да, я сейчас тестирую решение. Не должно занять много времени…

Исправлено. Пожалуйста, попробуйте пересобрать.

Привет, с сегодняшнего дня у меня тоже возникли проблемы при попытке клонировать и собрать проект. Оно пытается загрузить базовый образ от августа, но команда docker pull выдаёт ошибку: “ERRO[0001] Metadata for targets expired”. В противном случае я получаю следующее:

“Pups::ExecError: cd /var/www/discourse && su discourse -c ‘bundle exec rake themes:update assets:precompile’ failed with return #<Process::Status: pid 1298 exit 1>”

“exec failed with the params {“cd”=>”$home", “hook”=>“assets_precompile”, “cmd”=>[“su discourse -c ‘bundle exec rake themes:update assets:precompile’”]}"

“Sprockets::FileNotFound: couldn’t find file ‘/var/www/discourse/plugins/docker_manager/assets/javascripts/upgrade-header.js.handlebars’ with type ‘application/javascript’”

Можете помочь мне с этим? Пока ничего другого я не нашёл.

У меня была та же проблема. Чтобы временно заставить систему пересобрать проект, я удалил строку
- git clone https://github.com/discourse/docker_manager.git
из файла app.yml.

Похоже, эта проблема решена, но теперь я получаю:

FAILED -------------------- Pups::ExecError: cd /var/www/discourse && su discourse -c ‘bundle exec rake themes:update assets:precompile’ завершилась с ошибкой, возвращён код #<Process::Status: pid 1513 exit 1> Место ошибки: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’ Выполнение не удалось с параметрами {“cd”=>“$home”, “hook”=>“assets_precompile”, “cmd”=>[“su discourse -c ‘bundle exec rake themes:update assets:precompile’”]} Загрузка не удалась с кодом выхода 1 ** ЗАГРУЗКА НЕ УДАЛАСЬ ** Пожалуйста, прокрутите вверх и найдите предыдущие сообщения об ошибках, их может быть несколько. ./discourse-doctor может помочь диагностировать проблему.

Спасибо @Peter_G60 @spirobel @undasein — эта ошибка была вызвана чем-то совершенно отдельным от проблемы с реакциями, о которой упомянул @gerhard выше. Я только что объединил исправление в docker_manager — не могли бы вы попробовать обновиться снова? Извините за неудобства!

Спасибо за вашу работу. У меня не работает, возможно, это связано с themes:update?

Здорово! :grinning: :+1: Спасибо за быстрое исправление! Я снова добавил docker_manager, и всё работает. Отлично, что мы нашли ошибку!

Спасибо, @david, на этот раз всё прошло успешно. Нужно время, чтобы проверить всё, но то, что система снова онлайн, — хороший знак. Я очень ценю быстрое решение проблемы!

./launcher rebuild app?

Пожалуйста, поделитесь оригинальной ошибкой из лога. Вам нужно прокрутить вверх от строки с итогом «Failed------», которую вы ранее отправили.

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

Окей, проблема была в плагине discourse-signatures. Извините за задержку, я поочередно отключал плагины :upside_down_face:

Ага — огромное спасибо, что нашли это @undasein! Вот PR для исправления: FIX: Remove register_asset call for `.hbs` file by davidtaylorhq · Pull Request #34 · discourse/discourse-signatures · GitHub

Я проведу ещё один поиск по всем нашим официальным плагинам, чтобы проверить, нет ли у других той же проблемы :eyes:

Да, это тоже меня задело

Исправление для подписей теперь объединено.

Я обнаружил ещё несколько неофициальных плагинов с той же проблемой — открыты PR в discourse-nationalflags (cc @ebs) и browser_history (cc @sam).

Также я добавил более информативное сообщение об ошибке в ядро, чтобы было проще выявлять проблему, если она есть в других плагинах.