Привет,
Я пытаюсь обновить нашу DEV-инстансию до последней Beta 7, начиная с Beta 2.
Она работает на ветке по умолчанию tests-passed.
Моя проблема заключается в том, что пересборка контейнера завершается ошибкой подключения (предположительно) к GitHub:
I, [2025-07-28T12:35:19.480463 #1] INFO -- : Заменяем # postgres на if [ -f /root/install_postgres ]; then
/root/install_postgres
rm /root/install_postgres
fi
sv start postgres || exit 1
в /etc/service/unicorn/run
I, [2025-07-28T12:35:19.480838 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2025-07-28T12:35:19.511065 #1] INFO -- :
I, [2025-07-28T12:35:19.511112 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
git remote set-branches --add origin main
git remote set-branches origin tests-passed
git fetch --depth 1 origin tests-passed
else
git fetch --tags --prune-tags --prune --force origin
fi
'
error: RPC failed; curl 56 Recv failure: Connection reset by peer
error: 44 bytes of body are still expected
fatal: expected flush after ref listing
I, [2025-07-28T12:37:22.158398 #1] INFO -- :
I, [2025-07-28T12:37:22.158628 #1] INFO -- : Завершение асинхронных процессов
В остальном общее подключение на хосте в порядке. Если я очищаю кэш сборки Docker перед запуском ./launcher rebuild app, я вижу, что он действительно загружает последнюю версию, все образы контейнеров и так далее, но затем всё равно завершается ошибкой:
Длинный вывод stdout
I, [2025-07-28T12:19:42.269421 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
git remote set-branches --add origin main
git remote set-branches origin tests-passed
git fetch --depth 1 origin tests-passed
else
git fetch --tags --prune-tags --prune --force origin
fi
'
From https://github.com/discourse/discourse
- [deleted] (none) -> origin/dependabot/bundler/nokogiri-1.18.9
- [deleted] (none) -> origin/dependabot/bundler/playwright-ruby-client-1.54.0
- [deleted] (none) -> origin/dependabot/bundler/propshaft-1.2.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/babel-plugin-ember-template-compilation-3.0.0
- [deleted] (none) -> origin/dependabot/npm_and_yarn/glob-11.0.3
- [deleted] (none) -> origin/dependabot/npm_and_yarn/playwright-1.54.1
- [deleted] (none) -> origin/dev/decorate-quote-collapsed-content-properly
- [deleted] (none) -> origin/dev/extract-invite-guardian
- [deleted] (none) -> origin/dev/mt/discourse-category-custom-fields
- [deleted] (none) -> origin/dev/mt/discourse-group-users
- [deleted] (none) -> origin/dev/mt/discourse-groups
- [deleted] (none) -> origin/dev/mt/discourse-muted-users
- [deleted] (none) -> origin/dev/mt/requires-set
- [deleted] (none) -> origin/dev/no-more-widgets
- [deleted] (none) -> origin/dev/use-themeable-site-settings-horizon
- [deleted] (none) -> origin/enable-new-topic-btn-on-restricted-category
- [deleted] (none) -> origin/feature-admin-filter-controls
- [deleted] (none) -> origin/feature/enable-rich-editor-for-all
- [deleted] (none) -> origin/filtermagic
- [deleted] (none) -> origin/fix/mt/log-failed-downloads
- [deleted] (none) -> origin/fix/translated-badge-title
- [deleted] (none) -> origin/layout-container-dev
- [deleted] (none) -> origin/loic-upgrade-rails-8.0
- [deleted] (none) -> origin/media-convert-job
- [deleted] (none) -> origin/merge-sso-destination-url-cookie-with-destination-url-cookie
- [deleted] (none) -> origin/mt/set_store
- [deleted] (none) -> origin/pento/dev-flag-reason-tests
- [deleted] (none) -> origin/playwright-1.53
- [deleted] (none) -> origin/refactor-color-palette
- [deleted] (none) -> origin/remove-suspended-and-deleted-users-from-leaderboard
- [deleted] (none) -> origin/rollup-theme-experiment
- [deleted] (none) -> origin/ux-editor-toolbar-mobile-scroll
- [deleted] (none) -> origin/ux/sidebar-show-messages-count
43ddd4ef3..ea5b5b6c0 main -> origin/main
* [new branch] 0-a-depr-html-safe -> origin/0-a-depr-html-safe
* [new branch] 0-a-tabs -> origin/0-a-tabs
* [new branch] add-composer-mention-warnings -> origin/add-composer-mention-warnings
187f13d67..8d4a86f25 add-plugin-outlet-wrapper-to-login-template -> origin/add-plugin-outlet-wrapper-to-login-template
* [new branch] ai_default_llm -> origin/ai_default_llm
* [new branch] content-border-color -> origin/content-border-color
+ 51077ac74...088f149a6 dependabot/bundler/excon-1.2.8 -> origin/dependabot/bundler/excon-1.2.8 (forced update)
+ 36699b311...e3f5c2d0d dependabot/bundler/jwt-3.1.2 -> origin/dependabot/bundler/jwt-3.1.2 (forced update)
* [new branch] dependabot/bundler/octokit-10.0.0 -> origin/dependabot/bundler/octokit-10.0.0
* [new branch] dependabot/bundler/stripe-15.3.0 -> origin/dependabot/bundler/stripe-15.3.0
+ def825f3f...b5a5f3924 dependabot/bundler/web-push-3.0.2 -> origin/dependabot/bundler/web-push-3.0.2 (forced update)
* [new branch] dependabot/bundler/zendesk_api-3.1.1 -> origin/dependabot/bundler/zendesk_api-3.1.1
+ f4d832ec8...5aa0145f3 dependabot/npm_and_yarn/embroider-0ad991d471 -> origin/dependabot/npm_and_yarn/embroider-0ad991d471 (forced update)
* [new branch] dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.0.0 -> origin/dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.0.0
* [new branch] dependabot/npm_and_yarn/jspreadsheet-ce-5.0.3 -> origin/dependabot/npm_and_yarn/jspreadsheet-ce-5.0.3
* [new branch] dependabot/npm_and_yarn/lint-fda1ac657e -> origin/dependabot/npm_and_yarn/lint-fda1ac657e
+ e46dc3798...d3420e3eb dependabot/npm_and_yarn/prosemirror-f8434604ae -> origin/dependabot/npm_and_yarn/prosemirror-f8434604ae (forced update)
* [new branch] dependabot/npm_and_yarn/puppeteer-core-24.15.0 -> origin/dependabot/npm_and_yarn/puppeteer-core-24.15.0
+ 4bcbc028d...03b9759db dev-floatkit-autocomplete-d-editor -> origin/dev-floatkit-autocomplete-d-editor (forced update)
+ ea5bba76a...03b9759db dev-floatkit-autocomplete-d-editor-qa -> origin/dev-floatkit-autocomplete-d-editor-qa (forced update)
* [new branch] dev/decorate-cooked-state -> origin/dev/decorate-cooked-state
56e6c9ae1..11c480f88 dev/no-more-widgets-smoke-test -> origin/dev/no-more-widgets-smoke-test
* [new branch] dev/post-keep-detail-state -> origin/dev/post-keep-detail-state
* [new branch] dev/prevent-rerenderings -> origin/dev/prevent-rerenderings
* [new branch] dev/remove-redundant-staff-check-6 -> origin/dev/remove-redundant-staff-check-6
1f3bbee91..00dfb95b1 dev/try-fix-flakys-tss -> origin/dev/try-fix-flakys-tss
* [new branch] dual-mode-palettes-wip -> origin/dual-mode-palettes-wip
* [new branch] feature/color-mode-preference -> origin/feature/color-mode-preference
* [new branch] feature/type-upload-in-type-objects -> origin/feature/type-upload-in-type-objects
* [new branch] feature/use-current-user-tz-instead-of-guess-local-dates -> origin/feature/use-current-user-tz-instead-of-guess-local-dates
* [new branch] filter-tips-dmenu-martinwip -> origin/filter-tips-dmenu-martinwip
* [new branch] filter-updates -> origin/filter-updates
* [new branch] fix-color-palette-dark -> origin/fix-color-palette-dark
* [new branch] fix/missing-user-custom-preferences-outlet-class-in-connector -> origin/fix/missing-user-custom-preferences-outlet-class-in-connector
* [new branch] improve_no_database_error_patch -> origin/improve_no_database_error_patch
* [new branch] improve_pg_adapter_new_client_error -> origin/improve_pg_adapter_new_client_error
* [new branch] loic-pitchfork -> origin/loic-pitchfork
* [new branch] messages-dropdown-d-menu -> origin/messages-dropdown-d-menu
* [new branch] my-pref-lang -> origin/my-pref-lang
* [new branch] notification-panel-refactor -> origin/notification-panel-refactor
* [new branch] pinned-dmenu -> origin/pinned-dmenu
* [new branch] rollup-plugin-experiment -> origin/rollup-plugin-experiment
* [new branch] rollup-theme-experiment-cross-theme-import -> origin/rollup-theme-experiment-cross-theme-import
* [new branch] samsaffron/codex/convert-filter-tips-to-use-dmenu -> origin/samsaffron/codex/convert-filter-tips-to-use-dmenu
8cb90072e..710d9fd41 sandbox/design-1 -> origin/sandbox/design-1
1f97cf422..aa2fb29fa sandbox/dev-xp-1 -> origin/sandbox/dev-xp-1
817a743cb..3428acddc sandbox/member-xp-1 -> origin/sandbox/member-xp-1
+ d182efe6f...a0aba00c7 sandbox/member-xp-2 -> origin/sandbox/member-xp-2 (forced update)
* [new branch] source-identify-modulepreload -> origin/source-identify-modulepreload
+ 9aa6daa1f...c56258634 split-login-admin-settings -> origin/split-login-admin-settings (forced update)
a83bd0f67..41e1152f6 stable -> origin/stable
+ 293de3a75...e31549885 temp-user-creation-debug-logging -> origin/temp-user-creation-debug-logging (forced update)
43ddd4ef3..ea5b5b6c0 tests-passed -> origin/tests-passed
* [new branch] theme-upload-cleanup -> origin/theme-upload-cleanup
* [new branch] translations-from-crowdin-main -> origin/translations-from-crowdin-main
+ 9f8fd9214...c3562ed3a translations-from-crowdin-stable -> origin/translations-from-crowdin-stable (forced update)
+ 4ffab7134...e211b4a55 unicode-mentions-in-composer-rte -> origin/unicode-mentions-in-composer-rte (forced update)
* [new branch] ux-footer-button-squish -> origin/ux-footer-button-squish
* [new branch] ux-horizon-discotoc -> origin/ux-horizon-discotoc
* [new branch] ux-unify-appearance-filters -> origin/ux-unify-appearance-filters
b0c2d83ec..045aefecb ux/horizon-mobile-composer -> origin/ux/horizon-mobile-composer
* [new branch] ux/sidebar-my-messages-enhancements -> origin/ux/sidebar-my-messages-enhancements
+ 28d11bbd0...6f7d9e816 variable-additions-2 -> origin/variable-additions-2 (forced update)
39d2564ba..57dcfda6a vite-squashed-rebased -> origin/vite-squashed-rebased
I, [2025-07-28T12:19:43.174876 #1] INFO -- :
I, [2025-07-28T12:19:43.174943 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [[ $(git symbolic-ref --short HEAD) == tests-passed ]] ; then
git pull
else
git -c advice.detachedHead=false checkout tests-passed
fi
'
error: RPC failed; curl 56 Recv failure: Connection reset by peer
error: 5470 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
fatal: could not fetch bff89c0762e874ec88d553d89901dbda4fa89f20 from promisor remote
I, [2025-07-28T12:23:50.121438 #1] INFO -- :
Пока идет попытка получить данные с GitHub, в htop на хосте я не вижу абсолютно никакой активности.
Детали хоста: ВМ Proxmox под управлением Debian 11, 4 ядра, 12 ГБ памяти. Во время пересборки свободной памяти достаточно, так что проблема, скорее всего, не в памяти.
Сервер размещен в Германии, поэтому ничего не должно блокировать доступ к GitHub.
Я выяснил, что сообщения
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
указывают на таймаут, например, когда соединение слишком медленное. Проверка скорости соединения показывает около 890 Мбит/с на загрузку и выгрузку. Хранилище полностью на NVMe, поэтому я не вижу причин для таймаута на этом этапе.
Я пробовал очищать весь кэш сборки Docker, сначала обновлять систему хоста до последних пакетов, перезагружать его, а также переносить на другой узел в кластере, чтобы исключить неисправность хоста как причину проблемы.
Почти забыл добавить: при переходе в панель администратора я вижу сообщение о том, что я не нахожусь на последней версии, но нажатие на Click here to update приводит к ошибке:
Server-Error
while loading /admin/docker/repos
Errorcode: 502 error
Там тоже видны ошибки таймаута:
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:128:in `block in wait_poll'
<internal:kernel>:187:in `loop'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:117:in `wait_poll'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:78:in `internal_poll'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:204:in `internal_poll'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:73:in `block in poll'
/usr/local/lib/ruby/3.3.0/monitor.rb:201:in `synchronize'
/usr/local/lib/ruby/3.3.0/monitor.rb:201:in `mon_synchronize'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:82:in `synchronize'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb:73:in `poll'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:868:in `acquire_connection'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:564:in `checkout'
activerecord-7.2.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `with_connection'
activerecord-7.2.2.1/lib/active_record/connection_handling.rb:296:in `with_connection'
activerecord-7.2.2.1/lib/active_record/transactions.rb:410:in `with_transaction_returning_status'
activerecord-7.2.2.1/lib/active_record/transactions.rb:366:in `save!'
activerecord-7.2.2.1/lib/active_record/suppressor.rb:56:in `save!'
activerecord-7.2.2.1/lib/active_record/persistence.rb:55:in `create!'
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:128:in `process_queue'
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:77:in `worker_loop'
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads'
и
excon-1.2.5/lib/excon/socket.rb:386:in `select_with_timeout'
excon-1.2.5/lib/excon/socket.rb:258:in `rescue in read_nonblock'
excon-1.2.5/lib/excon/socket.rb:228:in `read_nonblock'
excon-1.2.5/lib/excon/socket.rb:89:in `block in readline'
<internal:kernel>:187:in `loop'
excon-1.2.5/lib/excon/socket.rb:78:in `readline'
excon-1.2.5/lib/excon/response.rb:73:in `block in parse'
<internal:kernel>:187:in `loop'
excon-1.2.5/lib/excon/response.rb:72:in `parse'
excon-1.2.5/lib/excon/middlewares/response_parser.rb:7:in `response_call'
excon-1.2.5/lib/excon/connection.rb:472:in `response'
excon-1.2.5/lib/excon/connection.rb:297:in `request'
/var/www/discourse/lib/discourse_updates.rb:136:in `new_features_payload'
/var/www/discourse/app/jobs/scheduled/check_new_features.rb:24:in `execute'
/var/www/discourse/app/jobs/base.rb:316:in `block (2 levels) in perform'
rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:303:in `block in perform'
/var/www/discourse/app/jobs/base.rb:299:in `each'
/var/www/discourse/app/jobs/base.rb:299:in `perform'
/var/www/discourse/app/jobs/base.rb:379:in `perform'
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:137:in `process_queue'
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:77:in `worker_loop'
mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads'
У меня действительно закончились идеи. Я пробовал увеличивать системные ресурсы, но добавление большего количества ядер или памяти ничего не меняет, ошибка сохраняется.
Я также пробовал увеличить git http.postBuffer, теперь процесс зависает чуть дольше перед тем, как завершиться ошибкой.
Надеюсь, у кого-то есть идея, так как я не смог найти никаких других тем или постов об этой ошибке.
Спасибо!