Сборка не удалась, помогите!

Сегодня я выполнил пересборку, но она не удалась. Я отключил все плагины, но, к сожалению, проблема сохраняется. Похоже, некоторые gems не обновляются корректно. @pfaffman, возможно, мне потребуется ваша помощь в этом вопросе.

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development' failed with return #<Process::Status: pid 367 exit 5>
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"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}
bootstrap failed with exit code 5
** 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.
I, [2022-09-26T00:37:54.244078 #1]  INFO -- : Terminating async processes
I, [2022-09-26T00:37:54.244262 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 41
2022-09-26 00:37:54.244 UTC [41] LOG:  received fast shutdown request
I, [2022-09-26T00:37:54.244884 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 102
102:signal-handler (1664152674) Received SIGTERM scheduling shutdown...
2022-09-26 00:37:54.247 UTC [41] LOG:  aborting any active transactions
2022-09-26 00:37:54.250 UTC [41] LOG:  background worker "logical replication launcher" (PID 50) exited with exit code 1
2022-09-26 00:37:54.253 UTC [45] LOG:  shutting down
102:M 26 Sep 2022 00:37:54.271 # User requested shutdown...
102:M 26 Sep 2022 00:37:54.271 * Saving the final RDB snapshot before exiting.
2022-09-26 00:37:54.274 UTC [41] LOG:  database system is shut down
102:M 26 Sep 2022 00:37:55.122 * DB saved on disk
102:M 26 Sep 2022 00:37:55.122 # Redis is now ready to exit, bye bye...
Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/msgpack-1.5.6.gem)
Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/image_size-3.1.0.gem)
Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/logster-2.11.3.gem)
Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/version_gem-1.1.0.gem)
Retrying download gem from https://rubygems.org/ due to error (3/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/msgpack-1.5.6.gem)
Retrying download gem from https://rubygems.org/ due to error (3/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/image_size-3.1.0.gem)
Retrying download gem from https://rubygems.org/ due to error (3/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/logster-2.11.3.gem)
Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/stackprof-0.2.21.gem)
Retrying download gem from https://rubygems.org/ due to error (4/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/image_size-3.1.0.gem)
Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/omniauth-1.9.2.gem)
Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/oauth-tty-1.0.3.gem)
Retrying download gem from https://rubygems.org/ due to error (3/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/stackprof-0.2.21.gem)
Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/loofah-2.19.0.gem)
Retrying download gem from https://rubygems.org/ due to error (2/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/css_parser-1.12.0.gem)
Retrying download gem from https://rubygems.org/ due to error (3/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/oauth-tty-1.0.3.gem)
Retrying download gem from https://rubygems.org/ due to error (4/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/stackprof-0.2.21.gem)
Retrying download gem from https://rubygems.org/ due to error (3/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/loofah-2.19.0.gem)
Retrying download gem from https://rubygems.org/ due to error (3/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/css_parser-1.12.0.gem)
Retrying download gem from https://rubygems.org/ due to error (4/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/oauth-tty-1.0.3.gem)
Retrying download gem from https://rubygems.org/ due to error (4/4): Gem::RemoteFetcher::FetchError Net::OpenTimeout: execution expired (https://rubygems.org/gems/loofah-2.19.0.gem)
Bundler::InstallError: Bundler::HTTPError: Could not download gem from https://rubygems.org/ due to underlying error <Net::OpenTimeout: execution expired (https://rubygems.org/gems/oauth-tty-1.0.3.gem)>
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/rubygems_integration.rb:497:in `rescue in download_gem'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/rubygems_integration.rb:469:in `download_gem'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/source/rubygems.rb:539:in `download_gem'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/source/rubygems.rb:488:in `fetch_gem'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/source/rubygems.rb:465:in `fetch_gem_if_possible'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/source/rubygems.rb:158:in `install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/installer/gem_installer.rb:54:in `install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/installer/parallel_installer.rb:186:in `do_install'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/installer/parallel_installer.rb:177:in `block in worker_pool'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/worker.rb:62:in `apply_func'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/worker.rb:57:in `block in process_queue'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/worker.rb:54:in `loop'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/worker.rb:54:in `process_queue'
  /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/worker.rb:91:in `block (2 levels) in create_threads'

Если запросы к rubygems завершаются по тайм-ауту, то, скорее всего, проблема на их стороне.

Вы успешно перезапустили существующий контейнер?

Предполагаю, что другие DNS-запросы с сервера выполняются успешно?

Нет, мне не удалось запустить контейнер.

Вот вывод команды gem env для справки:

Окружение RubyGems:
  - ВЕРСИЯ RUBYGEMS: 2.5.2.1
  - ВЕРСИЯ RUBY: 2.3.1 (2016-04-26 patchlevel 112) [x86_64-linux-gnu]
  - КАТАЛОГ УСТАНОВКИ: /var/lib/gems/2.3.0
  - КАТАЛОГ ПОЛЬЗОВАТЕЛЬСКОЙ УСТАНОВКИ: /root/.gem/ruby/2.3.0
  - ИСПОЛНЯЕМЫЙ ФАЙЛ RUBY: /usr/bin/ruby2.3
  - КАТАЛОГ ИСПОЛНЯЕМЫХ ФАЙЛОВ: /usr/local/bin
  - КАТАЛОГ КЭША СПЕЦИФИКАЦИЙ: /root/.gem/specs
  - КАТАЛОГ СИСТЕМНОЙ КОНФИГУРАЦИИ: /etc
  - ПЛАТФОРМЫ RUBYGEMS:
    - ruby
    - x86_64-linux
  - ПУТИ К ГЕМАМ:
     - /var/lib/gems/2.3.0
     - /root/.gem/ruby/2.3.0
     - /usr/lib/x86_64-linux-gnu/rubygems-integration/2.3.0
     - /usr/share/rubygems-integration/2.3.0
     - /usr/share/rubygems-integration/all
  - КОНФИГУРАЦИЯ ГЕМА:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - УДАЛЕННЫЕ ИСТОЧНИКИ:
     - https://rubygems.org/
  - ПУТЬ ОБРАБОТЧИКА:
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/games
     - /snap/bin

И, похоже, подключение установлено:

root@community:/var/discourse# curl -O https://rubygems.org/gems/msgpack-1.5.6.gem
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 89600  100 89600    0     0   745k      0 --:--:-- --:--:-- --:--:--  741k

РЕДАКТИРОВАНИЕ: Ошибка. Ну, это было странно. Оказывается, если не следовать инструкциям на Discourse FontAwesome Pro и клонировать плагин вместе с другими, а не в блоке after_code, возникают эти ошибки. Я не могу объяснить, почему раньше это работало. Я пересмотрел инструкции там, чтобы проверить, не было ли изменений, но они не обновлялись недавно.

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

У меня это работает. Мне интересно, как выглядит неправильная конфигурация?

## Плагины размещаются здесь
## подробности см. по ссылке https://meta.discourse.org/t/19157
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-fontawesome-pro.git

Теперь я действительно в замешательстве. Я никогда не обращал внимания, в каком блоке обычно находятся плагины. Но клянусь, что с плагином это не работало вместе со всеми остальными, а потом я добавил ещё один блок after_code с командой git clone и скриптом установки.

Попробую снова сломать это. :confused: :crying_cat_face:

Что ж, насколько я могу судить, это было просто ограничение скорости со стороны RubyGems. Не совсем понятно, почему только что созданный дроплет попал под это ограничение, но это, либо случайная проблема с самим RubyGems, — наиболее вероятное объяснение.

Попробуйте добавить 127.0.0.1 в DNS хоста.
Это помогло мне при этой ошибке.