בעיות בעדכון/בנייה מחדש ל-Beta7

Hi,

I’m currently trying to update our DEV-Instance to the most recent Beta 7, coming from Beta 2.
It’s running on the default `tests-passed’ branch.

My issue is that rebuilding the container ends in a connectivity issue (I guess) with github:

I, [2025-07-28T12:35:19.480463 #1]  INFO -- : Replacing # postgres with if [ -f /root/install_postgres ]; then
  /root/install_postgres
  rm /root/install_postgres
fi
sv start postgres || exit 1
 in /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 -- : Terminating async processes

General connectivity on the host is fine otherwise, if I clear the Docker Build Cache before ./launcher rebuild app I can see that it actually pulls the most recent version, pulls all the container images and so on, but still fails afterwards:

Long stdout output
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 -- : 

While it is trying to fetch from Github I can see no activity whatsoever on the Host in htop.

Host details: Proxmox VM running Debian 11, 4 Cores, 12GB Memory. Plenty of free memory while rebuilding, so it should not be a memory issue.
The server is hosted in germany, so there shouldn’t be anything blocking access to github.
I’ve found that

fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

indicates a tiemout, e.G. when the connection is too slow. Checking the connection speed shows around 890MBit/s Up and Down. Storage is all NVMe, so I don’t see any reason for it to time out at this step.

I’ve tried clearing all the Docker Build cache, updating the host system first to the most recent packages, rebooting, even moving it to a different node in the cluster to remove a faulty host as the issue.

Almost forgot to add: Heading towards the Admin Panel, I get the Information that I am not on the most recent version, but clicking on the Click here to update results in an error:

Server-Error
while loading /admin/docker/repos
Errorcode: 502 error

I can see timeout errors there as well:

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' 

and

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' 

I’m really out of ideas here. I tried increasing the system ressources, but adding more cores or memory does not change anything, the error persists.

I tried increasing the git http.postBuffer as well, now it’s stuck a little longer before failing.

I hope someone has an idea, as I couldn’t find any more threads or posts about this kind of error.

Thanks!

האם יש לך הרבה הרחבות בקובץ app.yml שלך? ייתכן שכדאי להוציא את כולן מהתגובות ולראות אם הדברים עובדים, ואם כן, תוכל להתחיל להחזיר אותן לתגובות מחדש.

We don’t use many Plugins. I also already removed the ones that got implemented into the core as per the changelogs.

Only these are set currently:

          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-translator.git
          - git clone https://github.com/discourse/onebox.git

I commented these out, but it’s still stuck at the same point.

This is also only a DEV instance, so no worries about data. If all goes south I can just throw a dump from the production server in to get it going again. But our Porduction system is on the same version, so I guess I’ll face the same issues there as well.

זה מרגיש כמו בעיית ספק, או אולי בעיית ליבה (kernel). אבל אין לי היכרות עם התקנת מפתחים.

\nהוא מתארח ב-Hetzner בגרמניה, גם אין שום דבר מיוחד בליבה, רק debian 11 ברירת מחדל בליבה 5.10.237-1. \n\nDEV-Instance מתייחס רק לכך שזוהי מופע הבדיקה שלנו כדי לנסות דברים כמו עדכונים/שדרוגים לפני שנבצע אותם בהתקנה הייצורית שלנו כדי לוודא שזה לא ישבור את הגרסה החיה. אז זה בעצם רק העתק של המערכת החיה שלנו כדי לנסות דברים עליה.

אה נכון. אם זה מבוסס על הקונטיינר הרגיל, והוא נתקל בבעיות קישוריות, אני חושב שזו לא בעיה של Discourse.

הקרנל שלך מאוד ישן. אני מריץ אובונטו 24.04 עם 6.8.0-53

הקרנל נבנה במאי 2025 והוא הנוכחי עבור דביאן 11, אשר עדיין נתמך באופן מלא. חודשיים זה לא באמת “ישן מאוד”.

אבל, כדי לשלול זאת, שדרגתי את המערכת לדביאן 12 ואת הקרנל הראשי העדכני ביותר 6.10 (שוב, לא ישן, זהו הקרנל העדכני ביותר של דביאן 12 ללא הפעלת גרסאות פיתוח/לילה/תצוגה מקדימה) והבעיה זהה בדיוק.

הכל במארח עובד, אין בעיות קישוריות ל-github או לאתרים אחרים, אפילו שדרוג מערכת מלא עבר תוך 5 דקות וללא בעיות. הדבר היחיד שלא עובד במערכת זו הוא discourse - אשר עבד לפני השדרוג הזה במשך מספר שנים.

מוזר גם שהעדכון באמצעות לוח הבקרה של המנהל מציג רק 502, מה שמצביע על בעיות מסוימות בתוך discourse, בעוד שהמערכת פועלת עם תמונת מערכת סטנדרטית כמעט ללא שינויים. אין תוספים של צד שלישי מותקנים, אין שינויים מלבד ערכת נושא מותאמת אישית.

זה מוזר מאוד. כל הכבוד שבדקת את ה-kernel - היו אי-תאימויות בין גרסאות kernel אבל ברור שזה לא זה.

אתה יכול לקבל שורת פקודה בתוך הקונטיינר ואולי לנסות פעולות רשת כלשהן (wget או curl) אבל אני לא בטוח מה זה יכול להוכיח.

אין לי עוד רעיונות כרגע, מצטער.

מצאתי שהשגיאות מצביעות על הגדרות Git שעשויות להזדקק לשינוי - אבל אני לא בטוח איפה אוכל לשנות אותן מכיוון שהכל קורה בתוך הקונטיינר תוך כדי בנייה מחדש. שינוי שלהן במערכת המארחת עצמה לא באמת עשה משהו.

לכן שינויים כמו git config http.postBuffer 524288000 כנראה לא ישפיעו על הבנייה מחדש אם ישונו במערכת המארחת.
כנ"ל לגבי הגדרות דחיסה או מגבלות זיכרון של Git.

אבדוק אם אוכל להקים מערך חדש על מערכת מארחת דומה או אם גם זה ייכשל עם אותה גרסה.

Just possibly you can put some command specs in your app.yml file - see

I’ve tried that now and no change sadly. Not sure if the command is run before it’s trying to pull/build the actual container.

It would have to run right when starting to (re)build. I’d expect those hooks to run after pulling/building the site at /var/www/discourse , which will not finish for me.

I’m really out of ideas at this point..

Edit: So I tried to diagnose it from within the running container and there seems to be an issue as well. Trying to clone the discourse docker repo fails here as well:

root@community-app:/tmp# git clone https://github.com/discourse/discourse_docker.git 
Cloning into 'discourse_docker'...
remote: Enumerating objects: 7235, done.
remote: Counting objects: 100% (234/234), done.
remote: Compressing objects: 100% (104/104), done.
error: RPC failed; curl 56 Recv failure: Connection reset by peer
error: 1355 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

So there’s gotta be something wrong inside docker or… I don’t know.
I can clone the same repository just fine from the host system, just not inside the container. Which is the same point where the rebuild fails.

I’ll diagnose docker networking a bit, maybe I can find something there.

אוי, סוף סוף הבנתי את זה. הבעיה הייתה אכן עם docker והרשת המארחת, לא עם discourse.

Hetzner, אם מריצים vSwitch עם רשת משנה ציבורית, דורש שה-MTU יוגדר ל-1400 במקום 1500. שיניתי את זה בשלב מסוים, אבל כנראה שהשינוי הזה בוטל בשלב מסוים. אז הייתי צריך לעשות את זה מחדש ולהפעיל מחדש את Docker עם ה-MTU הנכון.

עכשיו גם אתר העדכונים בתוך discourse עובד.

מצחיק איך כל השאר עבד כל הזמן.

לייק 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.