Bonjour,
J’essaie actuellement de mettre à jour notre instance DEV vers la dernière version Beta 7, en partant de la Beta 2.
Elle tourne sur la branche par défaut tests-passed.
Mon problème est que la reconstruction du conteneur aboutit à un problème de connectivité (je suppose) avec GitHub :
I, [2025-07-28T12:35:19.480463 #1] INFO -- : Remplacement de # postgres par if [ -f /root/install_postgres ]; then
/root/install_postgres
rm /root/install_postgres
fi
sv start postgres || exit 1
dans /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 -- : Terminaison des processus asynchrones
La connectivité générale sur l’hôte est par ailleurs fonctionnelle. Si je vide le cache de build Docker avant d’exécuter ./launcher rebuild app, je constate qu’il télécharge bien la version la plus récente, récupère toutes les images de conteneurs, etc., mais échoue ensuite :
Sortie standard longue
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
'
Depuis 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 (mise à jour forcée)
+ 36699b311...e3f5c2d0d dependabot/bundler/jwt-3.1.2 -> origin/dependabot/bundler/jwt-3.1.2 (mise à jour forcée)
* [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 (mise à jour forcée)
* [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 (mise à jour forcée)
* [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 (mise à jour forcée)
* [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 (mise à jour forcée)
+ ea5bba76a...03b9759db dev-floatkit-autocomplete-d-editor-qa -> origin/dev-floatkit-autocomplete-d-editor-qa (mise à jour forcée)
* [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 (mise à jour forcée)
* [new branch] source-identify-modulepreload -> origin/source-identify-modulepreload
+ 9aa6daa1f...c56258634 split-login-admin-settings -> origin/split-login-admin-settings (mise à jour forcée)
a83bd0f67..41e1152f6 stable -> origin/stable
+ 293de3a75...e31549885 temp-user-creation-debug-logging -> origin/temp-user-creation-debug-logging (mise à jour forcée)
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 (mise à jour forcée)
+ 4ffab7134...e211b4a55 unicode-mentions-in-composer-rte -> origin/unicode-mentions-in-composer-rte (mise à jour forcée)
* [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 (mise à jour forcée)
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 -- :
Pendant qu’il tente de récupérer des données depuis GitHub, je n’observe aucune activité sur l’hôte dans htop.
Détails de l’hôte : VM Proxmox sous Debian 11, 4 cœurs, 12 Go de mémoire. Il reste beaucoup de mémoire libre pendant la reconstruction, donc cela ne devrait pas être un problème de mémoire.
Le serveur est hébergé en Allemagne, il ne devrait donc y avoir aucun blocage d’accès à GitHub.
J’ai constaté que les messages suivants :
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
indiquent un dépassement de délai (timeout), par exemple lorsque la connexion est trop lente. Un test de vitesse de connexion affiche environ 890 Mbit/s en montée et en descente. Le stockage est entièrement NVMe, je ne vois donc aucune raison d’un dépassement de délai à cette étape.
J’ai essayé de vider tout le cache de build Docker, de mettre à jour le système hôte vers les derniers paquets, de redémarrer, et même de déplacer la VM vers un autre nœud du cluster pour écarter un hôte défectueux comme cause du problème.
J’ai failli oublier d’ajouter : En accédant au panneau d’administration, je reçois l’information que je ne suis pas sur la dernière version, mais cliquer sur Cliquez ici pour mettre à jour entraîne une erreur :
Server-Error
while loading /admin/docker/repos
Errorcode: 502 error
Je vois également des erreurs de dépassement de délai ici :
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'
et
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'
Je suis vraiment à court d’idées. J’ai essayé d’augmenter les ressources système, mais ajouter plus de cœurs ou de mémoire ne change rien, l’erreur persiste.
J’ai également essayé d’augmenter git http.postBuffer, maintenant cela reste bloqué un peu plus longtemps avant d’échouer.
J’espère que quelqu’un aura une idée, car je n’ai trouvé aucun autre fil de discussion ou post concernant ce type d’erreur.
Merci !