./launcher rebuild app error: bootstrap failed with exit code 234

The update of discourse via ./launcher rebuild app fails with following output:

x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-23T13:57:37.228548 #1]  INFO -- : Reading from stdin
I, [2025-02-23T13:57:37.239599 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  cho
wn: 
I, [2025-02-23T13:57:37.243003 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x 
 chown: 
I, [2025-02-23T13:57:37.246170 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  ch
own: 
I, [2025-02-23T13:57:37.249455 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown:
 
I, [2025-02-23T13:57:37.252447 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown:
 
I, [2025-02-23T13:57:37.252768 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/
15/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/15/main/postgresql.c
onf
I, [2025-02-23T13:57:37.440507 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with l
isten_addresses = '*' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T13:57:37.440880 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with
 synchronous_commit = $db_synchronous_commit in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T13:57:37.441239 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with sha
red_buffers = $db_shared_buffers in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T13:57:37.441541 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem 
= $db_work_mem in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T13:57:37.441851 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=
.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/15/m
ain/postgresql.conf
I, [2025-02-23T13:57:37.442167 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) wit
h checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T13:57:37.445665 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with 
logging_collector = $db_logging_collector in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T13:57:37.446205 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=
.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/15/mai
n/postgresql.conf
I, [2025-02-23T13:57:37.446558 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres 
+peer$) with local replication postgres  peer in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-23T13:57:37.657721 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with h
ost all all 0.0.0.0/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-23T13:57:37.658015 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) w
ith host all all ::/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-23T13:57:37.658265 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres a
lready running stop container ; exit 1
fi

I, [2025-02-23T14:00:39.168878 #1]  INFO -- : Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

I, [2025-02-23T14:00:39.169118 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec ch
pst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/pos
tmaster -D /etc/postgresql/15/main
I, [2025-02-23T14:00:39.173972 #1]  INFO -- : File > /usr/local/bin/create_db  chmod: +x  chow
n: 
I, [2025-02-23T14:00:39.178706 #1]  INFO -- : File > /var/lib/postgresql/take-database-backup 
 chmod: +x  chown: postgres:postgres
I, [2025-02-23T14:00:39.181157 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:
   chown: 
I, [2025-02-23T14:00:39.181339 #1]  INFO -- : > sleep 5
2025-02-23 14:00:39.224 UTC [42] LOG:  starting PostgreSQL 15.10 (Debian 15.10-1.pgdg120+1) on
 x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-02-23 14:00:39.225 UTC [42] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2025-02-23 14:00:39.225 UTC [42] LOG:  listening on IPv6 address "::", port 5432
2025-02-23 14:00:39.237 UTC [42] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.
5432"
2025-02-23 14:00:39.255 UTC [53] LOG:  database system was shut down at 2025-02-23 13:50:51 UT
C
2025-02-23 14:00:39.265 UTC [42] LOG:  database system is ready to accept connections
I, [2025-02-23T14:00:44.183099 #1]  INFO -- : 
I, [2025-02-23T14:00:44.183251 #1]  INFO -- : > /usr/local/bin/create_db
2025-02-23 14:00:44.245 UTC [60] postgres@postgres ERROR:  database "discourse" already exists
2025-02-23 14:00:44.245 UTC [60] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR:  database "discourse" already exists
2025-02-23 14:00:44.305 UTC [63] postgres@discourse ERROR:  role "discourse" already exists
2025-02-23 14:00:44.305 UTC [63] postgres@discourse STATEMENT:  create user discourse;
ERROR:  role "discourse" already exists
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
NOTICE:  version "0.8.0" of extension "vector" is already installed
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
NOTICE:  version "0.8.0" of extension "vector" is already installed
I, [2025-02-23T14:00:44.919371 #1]  INFO -- : GRANT
ALTER SCHEMA
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
UPDATE 0

I, [2025-02-23T14:00:44.919485 #1]  INFO -- : > echo postgres installed!
I, [2025-02-23T14:00:44.921215 #1]  INFO -- : postgres installed!

I, [2025-02-23T14:00:44.924527 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown:
 
I, [2025-02-23T14:00:44.927857 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  ch
own: 
I, [2025-02-23T14:00:44.931110 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown
: 
I, [2025-02-23T14:00:44.931473 #1]  INFO -- : Replacing daemonize yes with  in /etc/redis/redi
s.conf
I, [2025-02-23T14:00:45.155642 #1]  INFO -- : Replacing (?-mix:^pidfile.*$) with  in /etc/redi
s/redis.conf
I, [2025-02-23T14:00:45.156000 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/r
edis_data
I, [2025-02-23T14:00:45.158306 #1]  INFO -- : 
I, [2025-02-23T14:00:45.158630 #1]  INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in
 /etc/redis/redis.conf
I, [2025-02-23T14:00:45.159059 #1]  INFO -- : Replacing (?-mix:^bind .*$) with  in /etc/redis/
redis.conf
I, [2025-02-23T14:00:45.159470 #1]  INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redi
s_data in /etc/redis/redis.conf
I, [2025-02-23T14:00:45.159932 #1]  INFO -- : Replacing (?-mix:^protected-mode yes) with prote
cted-mode no in /etc/redis/redis.conf
I, [2025-02-23T14:00:45.160305 #1]  INFO -- : Replacing # io-threads 4 with io-threads $redis_
io_threads in /etc/redis/redis.conf
I, [2025-02-23T14:00:45.160642 #1]  INFO -- : > echo redis installed
I, [2025-02-23T14:00:45.162058 #1]  INFO -- : redis installed

I, [2025-02-23T14:00:45.162196 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2025-02-23T14:00:45.164878 #1]  INFO -- : logfile ""

I, [2025-02-23T14:00:45.165018 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-se
rver /etc/redis/redis.conf
I, [2025-02-23T14:00:45.166157 #1]  INFO -- : > sleep 10
109:C 23 Feb 2025 14:00:45.173 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
109:C 23 Feb 2025 14:00:45.173 # Redis version=7.0.15, bits=64, commit=00000000, modified=0, p
id=109, just started
109:C 23 Feb 2025 14:00:45.173 # Configuration loaded
109:M 23 Feb 2025 14:00:45.174 * monotonic clock: POSIX clock_gettime
109:M 23 Feb 2025 14:00:45.174 * Running mode=standalone, port=6379.
109:M 23 Feb 2025 14:00:45.174 # Server initialized
109:M 23 Feb 2025 14:00:45.174 # WARNING Memory overcommit must be enabled! Without it, a back
ground save or replication may fail under low memory condition. Being disabled, it can can als
o cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues
/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or
 run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
109:M 23 Feb 2025 14:00:45.175 * Loading RDB produced by version 7.0.15
109:M 23 Feb 2025 14:00:45.175 * RDB age 594 seconds
109:M 23 Feb 2025 14:00:45.175 * RDB memory usage when created 1.93 Mb
109:M 23 Feb 2025 14:00:45.179 * Done loading RDB, keys loaded: 1587, keys expired: 0.
109:M 23 Feb 2025 14:00:45.179 * DB loaded from disk: 0.005 seconds
109:M 23 Feb 2025 14:00:45.179 * Ready to accept connections
I, [2025-02-23T14:00:55.167739 #1]  INFO -- : 
I, [2025-02-23T14:00:55.167969 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2025-02-23T14:00:55.170853 #1]  INFO -- : thpoff is installed!

I, [2025-02-23T14:00:55.171140 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP
_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2025-02-23T14:00:55.261142 #1]  INFO -- : 
I, [2025-02-23T14:00:55.261282 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOST
NAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2025-02-23T14:00:55.261142 #1]  INFO -- : 
I, [2025-02-23T14:00:55.261282 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOST
NAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2025-02-23T14:00:55.353653 #1]  INFO -- : 
I, [2025-02-23T14:00:55.353790 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN
_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed yo
u should rebake your posts now to correct all posts."; exit 1; end'
I, [2025-02-23T14:00:55.447241 #1]  INFO -- : 
I, [2025-02-23T14:00:55.447431 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2025-02-23T14:00:55.449559 #1]  INFO -- : 
I, [2025-02-23T14:00:55.451483 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown: 
I, [2025-02-23T14:00:55.454910 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown
: 
I, [2025-02-23T14:00:55.458351 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chow
n: 
I, [2025-02-23T14:00:55.461584 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown:
 
I, [2025-02-23T14:00:55.464693 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown
: 
I, [2025-02-23T14:00:55.467810 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  cho
wn: 
I, [2025-02-23T14:00:55.467967 #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-02-23T14:00:55.469888 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discour
se git clean -f
I, [2025-02-23T14:00:55.699669 #1]  INFO -- : 
I, [2025-02-23T14:00:55.699811 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discour
se 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/0-app-events-revolution
 - [deleted]             (none)     -> origin/0-ember-bump-fix-modal
 - [deleted]             (none)     -> origin/0-polls-still
 - [deleted]             (none)     -> origin/0-rename-details
 - [deleted]             (none)     -> origin/0-simpler-placeholder
 - [deleted]             (none)     -> origin/0-store-bump
 - [deleted]             (none)     -> origin/0-user-status
 - [deleted]             (none)     -> origin/add-formkit-instruction-text
 - [deleted]             (none)     -> origin/add-live-reload-disable-option
 - [deleted]             (none)     -> origin/add-message-builder-modifier-3
 - [deleted]             (none)     -> origin/add-shift-detect
 - [deleted]             (none)     -> origin/add-shortcuts
 - [deleted]             (none)     -> origin/add-signal-to-notifications-template
 - [deleted]             (none)     -> origin/after-post-outlet
 - [deleted]             (none)     -> origin/again-support-load-more-btn
 - [deleted]             (none)     -> origin/allow-overriding-sidebar-my-posts-icon
 - [deleted]             (none)     -> origin/array-custom-field-order
 - [deleted]             (none)     -> origin/async-category-link
 - [deleted]             (none)     -> origin/bump-eslint-config
 - [deleted]             (none)     -> origin/carsick-patch-1
 - [deleted]             (none)     -> origin/cat-mod-groups
 - [deleted]             (none)     -> origin/category-experts-approved-webhook-event-wip
 - [deleted]             (none)     -> origin/chat-github-onebox
 - [deleted]             (none)     -> origin/chat-uppy-upload
 - [deleted]             (none)     -> origin/composer-disable-submit
 - [deleted]             (none)     -> origin/conditional-summary-box
 - [deleted]             (none)     -> origin/custom-field-store-cleanup
 - [deleted]             (none)     -> origin/d-object
 - [deleted]             (none)     -> origin/defer-button-action
 - [deleted]             (none)     -> origin/demote-summarize-ai-button
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/uppy-b578ad6dea
 - [deleted]             (none)     -> origin/dev-better-active-selection-detection
 - [deleted]             (none)     -> origin/dev-fail-tests-on-fa6-deprecated-icons-from-svg-
sprite-rb
 - [deleted]             (none)     -> origin/dev-faster-tests
 - [deleted]             (none)     -> origin/dev-migrate-user-passwords
 - [deleted]             (none)     -> origin/dev-refactor-username-validation-mixin
 - [deleted]             (none)     -> origin/dev/add-a-reference-column-to-notifications
 - [deleted]             (none)     -> origin/dev/advanced-search-custom-in-special
 - [deleted]             (none)     -> origin/dev/automation-scriptable-add-with-class
 - [deleted]             (none)     -> origin/dev/default-plugin-config-pages
 - [deleted]             (none)     -> origin/dev/drop-ignore-chat_channels_last_message_sent_
at
 - [deleted]             (none)     -> origin/dev/port-outlet-wrapper-to-stable
 - [deleted]             (none)     -> origin/dev/refactor-uploads-importer
 - [deleted]             (none)     -> origin/dev/remove-deprecated-respect-plugin-positional-
argument
 - [deleted]             (none)     -> origin/dev/sidebar-sections-collapse-expand-transformer
-events
 - [deleted]             (none)     -> origin/dev/sidebar-subsections
 - [deleted]             (none)     -> origin/dev/third-party-breadcrumbs
 - [deleted]             (none)     -> origin/dev_add_query_param
 - [deleted]             (none)     -> origin/dev_lazy_load_categories_tests
 - [deleted]             (none)     -> origin/dev_update_category_position
 - [deleted]             (none)     -> origin/docs-publishing-mvp
 - [deleted]             (none)     -> origin/drawer-composer-positioning
 - [deleted]             (none)     -> origin/ember-4
 - [deleted]             (none)     -> origin/expand-allowed-custom-emoji-images-types
 - [deleted]             (none)     -> origin/extra-js-revert
 - [deleted]             (none)     -> origin/feature/add-user-to-topic_tags_changed-event
 - [deleted]             (none)     -> origin/feature/custom-fields-for-existing-users
 - [deleted]             (none)     -> origin/feature/enable-chat-with-dms-only
 - [deleted]             (none)     -> origin/feature/light-dark-mode-switcher
 - [deleted]             (none)     -> origin/feature/paste-upload-on-first-upload-input-templ
ates
 - [deleted]             (none)     -> origin/feature/show-note-bookmark-notif
 - [deleted]             (none)     -> origin/feature/show-status-on-mentions-when-user-havent
-used-autocomplete
 - [deleted]             (none)     -> origin/feature_pm_editor
 - [deleted]             (none)     -> origin/feature_track_mentions
 - [deleted]             (none)     -> origin/fix-directory-search-limit
 - [deleted]             (none)     -> origin/fix-display-errors-for-history-modal-when-fetchi
ng-revisions
 - [deleted]             (none)     -> origin/fix-firefox-android-followup
 - [deleted]             (none)     -> origin/fix-password-reset-security-key
 - [deleted]             (none)     -> origin/fix-redirect-login
 - [deleted]             (none)     -> origin/fix-safari-below-18-detection
 - [deleted]             (none)     -> origin/fix-search-context-delete-key
 - [deleted]             (none)     -> origin/fix-unread-notifications-take-2
 - [deleted]             (none)     -> origin/fix/migrated-reactions-count-calculation
 - [deleted]             (none)     -> origin/fix/tag-rename-404
 - [deleted]             (none)     -> origin/full-page
 - [deleted]             (none)     -> origin/glimmer-header-dnd-live
 - [deleted]             (none)     -> origin/group_and_tag_group_permission_change_notification
 - [deleted]             (none)     -> origin/handle-non-ascii-charc
 - [deleted]             (none)     -> origin/hijacks
 - [deleted]             (none)     -> origin/history-store-methods
 - [deleted]             (none)     -> origin/i18n-helper-import
 - [deleted]             (none)     -> origin/image-assets
 - [deleted]             (none)     -> origin/implicit-injections-deprecations
 - [deleted]             (none)     -> origin/improve-claimed-reviewables-transactions
 - [deleted]             (none)     -> origin/improve-tablet-detection
 - [deleted]             (none)     -> origin/issue/do-not-enforce-2fa-on-social-logins
 - [deleted]             (none)     -> origin/issue/fix-user-field-enum-migrate
 - [deleted]             (none)     -> origin/issue/fixup-upload-ref-backfill-migration-dates
 - [deleted]             (none)     -> origin/jjaffeux-otp-validation
 - [deleted]             (none)     -> origin/list-wrapper
 - [deleted]             (none)     -> origin/live-cache
 - [deleted]             (none)     -> origin/lock-step
 - [deleted]             (none)     -> origin/loic-enable-rspec-rule
 - [deleted]             (none)     -> origin/loic-upgrade-miniracer
 - [deleted]             (none)     -> origin/more-topics-active
 - [deleted]             (none)     -> origin/nginx-conf
 - [deleted]             (none)     -> origin/oklab
 - [deleted]             (none)     -> origin/omniauth-2
 - [deleted]             (none)     -> origin/pento/feature-allow-admins-to-export-users
 - [deleted]             (none)     -> origin/plugin-outlet-no-subdir
 - [deleted]             (none)     -> origin/post-widget-outlet
 - [deleted]             (none)     -> origin/powered-by-reactivity
 - [deleted]             (none)     -> origin/promote-migration-tweak
 - [deleted]             (none)     -> origin/prune-old-transpilers
 - [deleted]             (none)     -> origin/refactor-mobile-coposer-position-replace-actions
 - [deleted]             (none)     -> origin/remap-assume-yes-option
 - [deleted]             (none)     -> origin/remove-bootbox
 - [deleted]             (none)     -> origin/remove-muted-from-hot-and-top-topic-lists
 - [deleted]             (none)     -> origin/remove-x-count
 - [deleted]             (none)     -> origin/render-glimmer-granular
- [deleted]             (none)     -> origin/revert-28587-revert-28321-dev/remove-create_post
_for_category_and_tag_changes-setting
 - [deleted]             (none)     -> origin/revert-location-change
 - [deleted]             (none)     -> origin/revert-thread-title-experiment
 - [deleted]             (none)     -> origin/safari-hacks-sayonara
 - [deleted]             (none)     -> origin/see_if_yarn_cache_is_working
 - [deleted]             (none)     -> origin/shared-draft-category
 - [deleted]             (none)     -> origin/skip-back-button-animation
 - [deleted]             (none)     -> origin/tag-span
 - [deleted]             (none)     -> origin/temp-pr-28024
 - [deleted]             (none)     -> origin/testing_debian_12
 - [deleted]             (none)     -> origin/tobiaseigen-patch-4
 - [deleted]             (none)     -> origin/topic-count-fix
 - [deleted]             (none)     -> origin/topic-list-item-style
 - [deleted]             (none)     -> origin/translations-from-crowdin-main
 - [deleted]             (none)     -> origin/translations-from-crowdin-stable
 - [deleted]             (none)     -> origin/update-gems-stable
 - [deleted]             (none)     -> origin/ux/admin-site-setting-inner-sidebar-experiment
 - [deleted]             (none)     -> origin/whats-new-notify-plugins
   c64b5d6d7..c592edbe3  main                    -> origin/main
 * [new branch]          add-header-search-experience -> origin/add-header-search-experience
 + 3c0b2f75f...0d2238318 allow-posts-link-in-sidebar -> origin/allow-posts-link-in-sidebar  (f
orced update)
 * [new branch]          async-data              -> origin/async-data
 * [new branch]          automation-autoload     -> origin/automation-autoload
 * [new branch]          br/multiple_likes       -> origin/br/multiple_likes
 * [new branch]          branding-logo           -> origin/branding-logo
 * [new branch]          chat-summary-email-thread-reply-fix -> origin/chat-summary-email-thre
ad-reply-fix
 * [new branch]          d-menu-composer-flag    -> origin/d-menu-composer-flag
 * [new branch]          dark-light-class        -> origin/dark-light-class
 * [new branch]          dark-light-mode-helpers -> origin/dark-light-mode-helpers
 * [new branch]          dependabot/npm_and_yarn/glimmer/syntax-0.94.7 -> origin/dependabot/np
m_and_yarn/glimmer/syntax-0.94.7
 * [new branch]          dependabot/npm_and_yarn/prosemirror-commands-1.7.0 -> origin/dependab
ot/npm_and_yarn/prosemirror-commands-1.7.0
 * [new branch]          dependabot/npm_and_yarn/uppy-b82cdcd59c -> origin/dependabot/npm_and_
yarn/uppy-b82cdcd59c
 * [new branch]          dev-refactor-password-validation-for-create-account -> origin/dev-ref
actor-password-validation-for-create-account
 + 72ff8f1eb...699aa3755 dev-refactor-username-validation-mixin-to-helper -> origin/dev-refact
or-username-validation-mixin-to-helper  (forced update)
 * [new branch]          dev/auto-screen-size-screenshots -> origin/dev/auto-screen-size-scree
nshots
 + ec68ffb95...a1849cd39 dev/color-palette-editor -> origin/dev/color-palette-editor  (forced 
update)
 * [new branch]          dev/ember-async-data-demo -> origin/dev/ember-async-data-demo
 * [new branch]          dev/glimmer-post-stream -> origin/dev/glimmer-post-stream
 * [new branch]          dev/purge-widget-post-menu -> origin/dev/purge-widget-post-menu
 * [new branch]          dev/remove-deprecated-auth-provider-options -> origin/dev/remove-depr
ecated-auth-provider-options
 * [new branch]          dev/user-field-components-transformer -> origin/dev/user-field-compon
ents-transformer
 * [new branch]          discourse-emojis-gem    -> origin/discourse-emojis-gem
 * [new branch]          feature-markdown-hex-color -> origin/feature-markdown-hex-color
 * [new branch]          feature/admin-search-improvements-2 -> origin/feature/admin-search-im
provements-2
 * [new branch]          feature/admins-access-group-chats -> origin/feature/admins-access-gro
up-chats
 * [new branch]          feature_pm_codeblock    -> origin/feature_pm_codeblock
 * [new branch]          feature_pm_emoji        -> origin/feature_pm_emoji
 * [new branch]          feature_pm_hashtag      -> origin/feature_pm_hashtag
 * [new branch]          feature_pm_html_block   -> origin/feature_pm_html_block
 * [new branch]          feature_pm_html_inline  -> origin/feature_pm_html_inline
 * [new branch]          feature_pm_image        -> origin/feature_pm_image
 * [new branch]          feature_pm_link         -> origin/feature_pm_link
 * [new branch]          feature_pm_mention      -> origin/feature_pm_mention
 * [new branch]          feature_pm_quote        -> origin/feature_pm_quote
 * [new branch]          feature_pm_strikethrough -> origin/feature_pm_strikethrough
 * [new branch]          feature_pm_table        -> origin/feature_pm_table
 * [new branch]          feature_pm_typographer  -> origin/feature_pm_typographer
 * [new branch]          feature_pm_underline    -> origin/feature_pm_underline
 * [new branch]          filter-navigation-ui    -> origin/filter-navigation-ui
 * [new branch]          fix-zlib                -> origin/fix-zlib
 * [new branch]          google-topic-count      -> origin/google-topic-count
 * [new branch]          google-translate-defender -> origin/google-translate-defender
 * [new branch]          loic-rspec-instance-var-globally -> origin/loic-rspec-instance-var-gl
obally
 * [new branch]          loic-upgrade-sidekiq    -> origin/loic-upgrade-sidekiq
 * [new branch]          loic-use-bundler-checksums -> origin/loic-use-bundler-checksums
 + 0f2f74d08...06c4fcf62 mt/idb                  -> origin/mt/idb  (forced update)
 * [new branch]          pento/dev-upgrade-pnpm-10 -> origin/pento/dev-upgrade-pnpm-10
 * [new branch]          pento/feature-which-watched-words-were-written -> origin/pento/featur
e-which-watched-words-were-written
 * [new branch]          quick-smoke-test        -> origin/quick-smoke-test
 + de3691471...e5890e554 renato/pm               -> origin/renato/pm  (forced update)
 * [new branch]          service-to-update-site-settings -> origin/service-to-update-site-sett
ings
 * [new branch]          settings-console-log    -> origin/settings-console-log
 * [new branch]          split-common-css        -> origin/split-common-css
 * [new branch]          split-cook-sanitise     -> origin/split-cook-sanitise
   5d4c2a89e..3bbf96fa2  stable                  -> origin/stable
   c64b5d6d7..c592edbe3  tests-passed            -> origin/tests-passed
 * [new branch]          tobiaseigen-patch-3     -> origin/tobiaseigen-patch-3
 * [new branch]          tobiaseigen-patch-3-1   -> origin/tobiaseigen-patch-3-1
 * [new branch]          topic-list-outlet-add-columns -> origin/topic-list-outlet-add-columns
 * [new branch]          topic-list-outlet-add-columns-stable -> origin/topic-list-outlet-add-
columns-stable
   415cccafb..c43caf483  user-fields-plugin-outlets-update -> origin/user-fields-plugin-outlet
s-update
 * [new branch]          user-menu-full-name-rebased -> origin/user-menu-full-name-rebased
 * [new branch]          user-summary-topic-add-plugin-wrappers -> origin/user-summary-topic-a
dd-plugin-wrappers
   10566d84b..c540132fe  ux/combined-themes-components-sidebar-links -> origin/ux/combined-the
mes-components-sidebar-links
 * [new branch]          visual-experiment       -> origin/visual-experiment
 t [tag update]          beta                    -> beta
 t [tag update]          latest-release          -> latest-release
 * [new tag]             v3.3.4                  -> v3.3.4
 * [new tag]             v3.4.0                  -> v3.4.0
 * [new tag]             v3.4.0.beta4            -> v3.4.0.beta4
I, [2025-02-23T14:00:56.808582 #1]  INFO -- : 
I, [2025-02-23T14:00:56.808699 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discour
se 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
'
Switched to a new branch 'tests-passed'
I, [2025-02-23T14:01:04.408360 #1]  INFO -- : branch 'tests-passed' set up to track 'origin/te
sts-passed'.

I, [2025-02-23T14:01:04.408487 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discour
se git config user.discourse-version tests-passed
I, [2025-02-23T14:01:04.418102 #1]  INFO -- : 
I, [2025-02-23T14:01:04.418236 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2025-02-23T14:01:04.420716 #1]  INFO -- : 
I, [2025-02-23T14:01:04.420801 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-d
ata tmp
I, [2025-02-23T14:01:04.423030 #1]  INFO -- : 
I, [2025-02-23T14:01:04.423097 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2025-02-23T14:01:04.425313 #1]  INFO -- : 
I, [2025-02-23T14:01:04.425384 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2025-02-23T14:01:04.427628 #1]  INFO -- : 
I, [2025-02-23T14:01:04.427696 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2025-02-23T14:01:04.429836 #1]  INFO -- : 
I, [2025-02-23T14:01:04.429907 #1]  INFO -- : > cd /var/www/discourse && mkdir -p             
       /shared/log/rails
I, [2025-02-23T14:01:04.432249 #1]  INFO -- : 
I, [2025-02-23T14:01:04.432370 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a    
       /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.
log"
I, [2025-02-23T14:01:04.435683 #1]  INFO -- : 
I, [2025-02-23T14:01:04.435810 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s    
       /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.
log /var/www/discourse/log"
I, [2025-02-23T14:01:04.439586 #1]  INFO -- : 
I, [2025-02-23T14:01:04.439704 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p    
       /shared/{uploads,backups}"
I, [2025-02-23T14:01:04.443250 #1]  INFO -- : 
I, [2025-02-23T14:01:04.443370 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s    
       /shared/{uploads,backups} /var/www/discourse/public"
I, [2025-02-23T14:01:04.446759 #1]  INFO -- : 
I, [2025-02-23T14:01:04.446880 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p    
       /shared/tmp/{backups,restores}"
I, [2025-02-23T14:01:04.450346 #1]  INFO -- : 
I, [2025-02-23T14:01:04.450466 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s    
       /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2025-02-23T14:01:04.453698 #1]  INFO -- : 
I, [2025-02-23T14:01:04.453819 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:ww
w-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2025-02-23T14:01:04.459171 #1]  INFO -- : 
I, [2025-02-23T14:01:04.459297 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins
 ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2025-02-23T14:01:04.460710 #1]  INFO -- : 
I, [2025-02-23T14:01:04.460891 #1]  INFO -- : Replacing # redis with if [ ! -d /shared/redis_d
ata ]; then
  install -d -m 0755 -o redis -g redis /shared/redis_data
fi
sv start redis || exit 1 in /etc/service/unicorn/run
I, [2025-02-23T14:01:04.461290 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone htt
ps://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2025-02-23T14:01:05.488476 #1]  INFO -- : 
I, [2025-02-23T14:01:05.488621 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone htt
ps://github.com/communiteq/discourse-private-topics.git
Cloning into 'discourse-private-topics'...
I, [2025-02-23T14:01:06.031956 #1]  INFO -- : 
I, [2025-02-23T14:01:06.032288 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf
 /etc/nginx/conf.d/discourse.conf
I, [2025-02-23T14:01:06.034774 #1]  INFO -- : 
I, [2025-02-23T14:01:06.034847 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2025-02-23T14:01:06.036387 #1]  INFO -- : 
I, [2025-02-23T14:01:06.036485 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2025-02-23T14:01:06.038265 #1]  INFO -- : 
I, [2025-02-23T14:01:06.038445 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; i
n /etc/nginx/nginx.conf
I, [2025-02-23T14:01:06.392764 #1]  INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream
 discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2025-02-23T14:01:06.393104 #1]  INFO -- : Replacing (?-mix:server_name.+$) with server_nam
e _ ; in /etc/nginx/conf.d/discourse.conf
I, [2025-02-23T14:01:06.393446 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with c
lient_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2025-02-23T14:01:06.393786 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with wor
ker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2025-02-23T14:01:06.394050 #1]  INFO -- : > echo "done configuring web"
I, [2025-02-23T14:01:06.395702 #1]  INFO -- : done configuring web

I, [2025-02-23T14:01:06.395931 #1]  INFO -- : > cd /var/www/discourse && gem install bundler -
-conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2025-02-23T14:01:06.710273 #1]  INFO -- : 
I, [2025-02-23T14:01:06.710415 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discour
se ! -user discourse -exec chown discourse {} \+
I, [2025-02-23T14:01:09.127306 #1]  INFO -- : 
I, [2025-02-23T14:01:09.127590 #1]  INFO -- : > cd /var/www/discourse && if [ -f yarn.lock ]; 
then
  if [ -d node_modules/.pnpm ]; then
    echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..
."
    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec 
rm -rf {} +
  fi
  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'
fi
I, [2025-02-23T14:01:10.746254 #1]  INFO -- : Scope: all 17 workspace projects
Lockfile is up to date, resolution step is skipped
<E2><80><89>EINVAL<E2><80><89> EINVAL: invalid argument, rmdir '/var/www/discourse/app/assets/
javascripts/dialog-holder/node_modules/.bin'



I, [2025-02-23T14:01:10.746702 #1]  INFO -- : Terminating async processes
I, [2025-02-23T14:01:10.746784 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=pos
tgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgres
ql/15/bin/postmaster -D /etc/postgresql/15/main pid: 42
I, [2025-02-23T14:01:10.746868 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /us
r/bin/redis-server /etc/redis/redis.conf pid: 109
2025-02-23 14:01:10.746 UTC [42] LOG:  received fast shutdown request
109:signal-handler (1740319270) Received SIGTERM scheduling shutdown...
109:M 23 Feb 2025 14:01:10.753 # User requested shutdown...
109:M 23 Feb 2025 14:01:10.753 * Saving the final RDB snapshot before exiting.
2025-02-23 14:01:10.772 UTC [42] LOG:  aborting any active transactions
2025-02-23 14:01:10.774 UTC [42] LOG:  background worker "logical replication launcher" (PID 5
6) exited with exit code 1
2025-02-23 14:01:10.774 UTC [51] LOG:  shutting down
2025-02-23 14:01:10.792 UTC [51] LOG:  checkpoint starting: shutdown immediate
109:M 23 Feb 2025 14:01:10.801 * DB saved on disk
109:M 23 Feb 2025 14:01:10.801 # Redis is now ready to exit, bye bye...
2025-02-23 14:01:10.867 UTC [51] LOG:  checkpoint complete: wrote 4 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.027 s, total=0.093 s; sync files=3, longest=0.010 s, average=0.009 s; distance=5 kB, estimate=5 kB
2025-02-23 14:01:10.873 UTC [42] LOG:  database system is shut down

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && if [ -f yarn.lock ]; then
  if [ -d node_modules/.pnpm ]; then
    echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..."
    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +
  fi
  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'
fi failed with return #<Process::Status: pid 290 exit 234>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"yarn", "cmd"=>["if [ -f yarn.lock ]; then\n  if [ -d node_modules/.pnpm ]; then\n    echo \"This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up...\"\n    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +\n  fi\n  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'\nelse\n  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'\nfi"]}
bootstrap failed with exit code 234
** 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.
bf860505d7d5e6379093f311be8da79cc526d9f1180e779bca2470adef464e7d

I couldn’t find any information about the exit code 234. Any idea what’s going wrong?

I think perhaps this is where an error was encountered, perhaps in the pnpm package manager, but I don’t know the meaning of it:

I think the command line running at the time would be

1 Like

The error is due to a mismatch between yarn and pnpm . The failure is specifically due to:
EINVAL: invalid argument, rmdir '/var/www/discourse/app/assets/javascripts/dialog-holder/node_modules/.bin'

Suggested Steps:

  1. Manually remove Node Modules: rm -rf node_modules app/assets/javascripts/*/node_modules
  2. Run cleanup: ./launcher cleanup
  3. Rebuild Discourse: ./launcher rebuild app
2 Likes

I did as suggested, but the error unfortunately persists:

./launcher rebuild app
x86_64 arch detected.

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

2.0.20250129-0720: Pulling from discourse/base
af302e5c37e9: Pull complete 
ed49ab5c933d: Pull complete 
7cb9e730d898: Pull complete 
7c28a6b187b2: Pull complete 
23222af7238f: Pull complete 
59b87d9ed5c1: Pull complete 
90d60b432298: Pull complete 
d3b3135aa82b: Pull complete 
94e7b594395d: Pull complete 
cf15e2c89d00: Pull complete 
2c0cccf9ec27: Pull complete 
5d8ea2a8d564: Pull complete 
020f04b42275: Pull complete 
06e22604f387: Pull complete 
8b0ecc579aad: Pull complete 
4d577f7424c0: Pull complete 
37ef4781925f: Pull complete 
30d67d1af761: Pull complete 
43eaf8c26af4: Pull complete 
02f4cc50eabd: Pull complete 
93896ee36e56: Pull complete 
fadd5d615e0e: Pull complete 
85f9459cb30e: Pull complete 
eaddca2afacb: Pull complete 
f54443d29a2d: Pull complete 
ed6f0f133683: Pull complete 
3d1894dc563f: Pull complete 
51ca3f63c909: Pull complete 
b87374db2274: Pull complete 
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Downloaded newer image for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-23T21:28:35.906550 #1]  INFO -- : Reading from stdin
I, [2025-02-23T21:28:35.919756 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2025-02-23T21:28:35.923116 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2025-02-23T21:28:35.926554 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2025-02-23T21:28:35.929994 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown: 
I, [2025-02-23T21:28:35.933196 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2025-02-23T21:28:35.933633 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/15/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T21:28:36.302682 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T21:28:36.303026 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T21:28:36.303406 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T21:28:36.303714 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T21:28:36.304021 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T21:28:36.304333 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T21:28:36.307838 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T21:28:36.308366 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-23T21:28:36.308727 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-23T21:28:36.496135 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-23T21:28:36.496438 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-23T21:28:36.496691 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi

I, [2025-02-23T21:31:39.513487 #1]  INFO -- : Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

I, [2025-02-23T21:31:39.513737 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
I, [2025-02-23T21:31:39.518560 #1]  INFO -- : File > /usr/local/bin/create_db  chmod: +x  chown: 
I, [2025-02-23T21:31:39.523443 #1]  INFO -- : File > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2025-02-23T21:31:39.525967 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:   chown: 
I, [2025-02-23T21:31:39.526157 #1]  INFO -- : > sleep 5
2025-02-23 21:31:39.614 UTC [42] LOG:  starting PostgreSQL 15.10 (Debian 15.10-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-02-23 21:31:39.615 UTC [42] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2025-02-23 21:31:39.615 UTC [42] LOG:  listening on IPv6 address "::", port 5432
2025-02-23 21:31:39.627 UTC [42] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2025-02-23 21:31:39.645 UTC [53] LOG:  database system was shut down at 2025-02-23 14:01:10 UTC
2025-02-23 21:31:39.657 UTC [42] LOG:  database system is ready to accept connections
I, [2025-02-23T21:31:44.528149 #1]  INFO -- : 
I, [2025-02-23T21:31:44.528302 #1]  INFO -- : > /usr/local/bin/create_db
2025-02-23 21:31:44.600 UTC [60] postgres@postgres ERROR:  database "discourse" already exists
2025-02-23 21:31:44.600 UTC [60] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR:  database "discourse" already exists
2025-02-23 21:31:44.662 UTC [63] postgres@discourse ERROR:  role "discourse" already exists
2025-02-23 21:31:44.662 UTC [63] postgres@discourse STATEMENT:  create user discourse;
ERROR:  role "discourse" already exists
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
NOTICE:  version "0.8.0" of extension "vector" is already installed
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
NOTICE:  version "0.8.0" of extension "vector" is already installed
I, [2025-02-23T21:31:45.278006 #1]  INFO -- : GRANT
ALTER SCHEMA
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
UPDATE 0

I, [2025-02-23T21:31:45.278115 #1]  INFO -- : > echo postgres installed!
I, [2025-02-23T21:31:45.279850 #1]  INFO -- : postgres installed!

I, [2025-02-23T21:31:45.283348 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown: 
I, [2025-02-23T21:31:45.286683 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  chown: 
I, [2025-02-23T21:31:45.289832 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown: 
I, [2025-02-23T21:31:45.290389 #1]  INFO -- : Replacing daemonize yes with  in /etc/redis/redis.conf
I, [2025-02-23T21:31:45.482750 #1]  INFO -- : Replacing (?-mix:^pidfile.*$) with  in /etc/redis/redis.conf
I, [2025-02-23T21:31:45.483098 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2025-02-23T21:31:45.486197 #1]  INFO -- : 
I, [2025-02-23T21:31:45.486579 #1]  INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2025-02-23T21:31:45.487000 #1]  INFO -- : Replacing (?-mix:^bind .*$) with  in /etc/redis/redis.conf
I, [2025-02-23T21:31:45.487412 #1]  INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2025-02-23T21:31:45.487861 #1]  INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2025-02-23T21:31:45.488227 #1]  INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2025-02-23T21:31:45.488550 #1]  INFO -- : > echo redis installed
I, [2025-02-23T21:31:45.489940 #1]  INFO -- : redis installed

I, [2025-02-23T21:31:45.490078 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2025-02-23T21:31:45.493628 #1]  INFO -- : logfile ""

I, [2025-02-23T21:31:45.493826 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2025-02-23T21:31:45.495065 #1]  INFO -- : > sleep 10
109:C 23 Feb 2025 21:31:45.507 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
109:C 23 Feb 2025 21:31:45.507 # Redis version=7.0.15, bits=64, commit=00000000, modified=0, pid=109, just started
109:C 23 Feb 2025 21:31:45.507 # Configuration loaded
109:M 23 Feb 2025 21:31:45.507 * monotonic clock: POSIX clock_gettime
109:M 23 Feb 2025 21:31:45.508 * Running mode=standalone, port=6379.
109:M 23 Feb 2025 21:31:45.508 # Server initialized
109:M 23 Feb 2025 21:31:45.508 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
109:M 23 Feb 2025 21:31:45.509 * Loading RDB produced by version 7.0.7
109:M 23 Feb 2025 21:31:45.509 * RDB age 254 seconds
109:M 23 Feb 2025 21:31:45.509 * RDB memory usage when created 2.00 Mb
109:M 23 Feb 2025 21:31:45.513 * Done loading RDB, keys loaded: 1587, keys expired: 0.
109:M 23 Feb 2025 21:31:45.513 * DB loaded from disk: 0.004 seconds
109:M 23 Feb 2025 21:31:45.513 * Ready to accept connections
I, [2025-02-23T21:31:55.496692 #1]  INFO -- : 
I, [2025-02-23T21:31:55.496981 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2025-02-23T21:31:55.499725 #1]  INFO -- : thpoff is installed!

I, [2025-02-23T21:31:55.499945 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2025-02-23T21:31:55.611191 #1]  INFO -- : 
I, [2025-02-23T21:31:55.611342 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2025-02-23T21:31:55.701051 #1]  INFO -- : 
I, [2025-02-23T21:31:55.701184 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2025-02-23T21:31:55.792799 #1]  INFO -- : 
I, [2025-02-23T21:31:55.792976 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2025-02-23T21:31:55.795285 #1]  INFO -- : 
I, [2025-02-23T21:31:55.797250 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown: 
I, [2025-02-23T21:31:55.801027 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown: 
I, [2025-02-23T21:31:55.804619 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown: 
I, [2025-02-23T21:31:55.807956 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown: 
I, [2025-02-23T21:31:55.811451 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown: 
I, [2025-02-23T21:31:55.814769 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown: 
I, [2025-02-23T21:31:55.814902 #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-02-23T21:31:55.816135 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2025-02-23T21:31:56.068849 #1]  INFO -- : 
I, [2025-02-23T21:31:56.068969 #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/0-app-events-revolution
 - [deleted]             (none)     -> origin/0-ember-bump-fix-modal
 - [deleted]             (none)     -> origin/0-polls-still
 - [deleted]             (none)     -> origin/0-rename-details
 - [deleted]             (none)     -> origin/0-simpler-placeholder
 - [deleted]             (none)     -> origin/0-store-bump
 - [deleted]             (none)     -> origin/0-tooltip
 - [deleted]             (none)     -> origin/0-user-status
 - [deleted]             (none)     -> origin/add-formkit-instruction-text
 - [deleted]             (none)     -> origin/add-live-reload-disable-option
 - [deleted]             (none)     -> origin/add-message-builder-modifier-3
 - [deleted]             (none)     -> origin/add-shift-detect
 - [deleted]             (none)     -> origin/add-shortcuts
 - [deleted]             (none)     -> origin/add-signal-to-notifications-template
 - [deleted]             (none)     -> origin/after-post-outlet
 - [deleted]             (none)     -> origin/again-support-load-more-btn
 - [deleted]             (none)     -> origin/allow-overriding-sidebar-my-posts-icon
 - [deleted]             (none)     -> origin/array-custom-field-order
 - [deleted]             (none)     -> origin/async-category-link
 - [deleted]             (none)     -> origin/bump-eslint-config
 - [deleted]             (none)     -> origin/carsick-patch-1
 - [deleted]             (none)     -> origin/cat-mod-groups
 - [deleted]             (none)     -> origin/category-experts-approved-webhook-event-wip
 - [deleted]             (none)     -> origin/chat-github-onebox
 - [deleted]             (none)     -> origin/chat-uppy-upload
 - [deleted]             (none)     -> origin/composer-disable-submit
 - [deleted]             (none)     -> origin/conditional-summary-box
 - [deleted]             (none)     -> origin/custom-field-store-cleanup
 - [deleted]             (none)     -> origin/d-object
 - [deleted]             (none)     -> origin/defer-button-action
 - [deleted]             (none)     -> origin/demote-summarize-ai-button
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/uppy-b578ad6dea
 - [deleted]             (none)     -> origin/dev-better-active-selection-detection
 - [deleted]             (none)     -> origin/dev-fail-tests-on-fa6-deprecated-icons-from-svg-sprite-rb
 - [deleted]             (none)     -> origin/dev-faster-tests
 - [deleted]             (none)     -> origin/dev-migrate-user-passwords
 - [deleted]             (none)     -> origin/dev-refactor-username-validation-mixin
 - [deleted]             (none)     -> origin/dev/add-a-reference-column-to-notifications
 - [deleted]             (none)     -> origin/dev/advanced-search-custom-in-special
 - [deleted]             (none)     -> origin/dev/automation-scriptable-add-with-class
 - [deleted]             (none)     -> origin/dev/default-plugin-config-pages
 - [deleted]             (none)     -> origin/dev/drop-ignore-chat_channels_last_message_sent_at
 - [deleted]             (none)     -> origin/dev/port-outlet-wrapper-to-stable
 - [deleted]             (none)     -> origin/dev/refactor-uploads-importer
 - [deleted]             (none)     -> origin/dev/remove-deprecated-respect-plugin-positional-argument
 - [deleted]             (none)     -> origin/dev/sidebar-sections-collapse-expand-transformer-events
 - [deleted]             (none)     -> origin/dev/sidebar-subsections
 - [deleted]             (none)     -> origin/dev/third-party-breadcrumbs
 - [deleted]             (none)     -> origin/dev_add_query_param
 - [deleted]             (none)     -> origin/dev_lazy_load_categories_tests
 - [deleted]             (none)     -> origin/dev_update_category_position
 - [deleted]             (none)     -> origin/docs-publishing-mvp
 - [deleted]             (none)     -> origin/drawer-composer-positioning
 - [deleted]             (none)     -> origin/ember-4
 - [deleted]             (none)     -> origin/expand-allowed-custom-emoji-images-types
 - [deleted]             (none)     -> origin/extra-js-revert
 - [deleted]             (none)     -> origin/feature/add-user-to-topic_tags_changed-event
 - [deleted]             (none)     -> origin/feature/custom-fields-for-existing-users
 - [deleted]             (none)     -> origin/feature/enable-chat-with-dms-only
 - [deleted]             (none)     -> origin/feature/light-dark-mode-switcher
 - [deleted]             (none)     -> origin/feature/paste-upload-on-first-upload-input-templates
 - [deleted]             (none)     -> origin/feature/show-note-bookmark-notif
 - [deleted]             (none)     -> origin/feature/show-status-on-mentions-when-user-havent-used-autocomplete
 - [deleted]             (none)     -> origin/feature_pm_editor
 - [deleted]             (none)     -> origin/feature_track_mentions
 - [deleted]             (none)     -> origin/fix-directory-search-limit
 - [deleted]             (none)     -> origin/fix-display-errors-for-history-modal-when-fetching-revisions
 - [deleted]             (none)     -> origin/fix-firefox-android-followup
 - [deleted]             (none)     -> origin/fix-password-reset-security-key
 - [deleted]             (none)     -> origin/fix-redirect-login
 - [deleted]             (none)     -> origin/fix-safari-below-18-detection
 - [deleted]             (none)     -> origin/fix-search-context-delete-key
 - [deleted]             (none)     -> origin/fix-unread-notifications-take-2
 - [deleted]             (none)     -> origin/fix/migrated-reactions-count-calculation
 - [deleted]             (none)     -> origin/fix/tag-rename-404
 - [deleted]             (none)     -> origin/full-page
 - [deleted]             (none)     -> origin/glimmer-header-dnd-live
 - [deleted]             (none)     -> origin/group_and_tag_group_permission_change_notification
 - [deleted]             (none)     -> origin/handle-non-ascii-charc
 - [deleted]             (none)     -> origin/hijacks
 - [deleted]             (none)     -> origin/history-store-methods
 - [deleted]             (none)     -> origin/i18n-helper-import
 - [deleted]             (none)     -> origin/image-assets
 - [deleted]             (none)     -> origin/implicit-injections-deprecations
 - [deleted]             (none)     -> origin/improve-claimed-reviewables-transactions
 - [deleted]             (none)     -> origin/improve-tablet-detection
 - [deleted]             (none)     -> origin/issue/do-not-enforce-2fa-on-social-logins
 - [deleted]             (none)     -> origin/issue/fix-user-field-enum-migrate
 - [deleted]             (none)     -> origin/issue/fixup-upload-ref-backfill-migration-dates
 - [deleted]             (none)     -> origin/jjaffeux-otp-validation
 - [deleted]             (none)     -> origin/list-wrapper
 - [deleted]             (none)     -> origin/live-cache
 - [deleted]             (none)     -> origin/lock-step
 - [deleted]             (none)     -> origin/loic-enable-rspec-rule
 - [deleted]             (none)     -> origin/loic-upgrade-miniracer
 - [deleted]             (none)     -> origin/more-topics-active
 - [deleted]             (none)     -> origin/nginx-conf
 - [deleted]             (none)     -> origin/oklab
 - [deleted]             (none)     -> origin/omniauth-2
 - [deleted]             (none)     -> origin/pento/feature-allow-admins-to-export-users
 - [deleted]             (none)     -> origin/plugin-outlet-no-subdir
 - [deleted]             (none)     -> origin/post-widget-outlet
 - [deleted]             (none)     -> origin/powered-by-reactivity
 - [deleted]             (none)     -> origin/promote-migration-tweak
 - [deleted]             (none)     -> origin/prune-old-transpilers
 - [deleted]             (none)     -> origin/refactor-mobile-coposer-position-replace-actions
 - [deleted]             (none)     -> origin/remap-assume-yes-option
 - [deleted]             (none)     -> origin/remove-bootbox
 - [deleted]             (none)     -> origin/remove-muted-from-hot-and-top-topic-lists
 - [deleted]             (none)     -> origin/remove-x-count
 - [deleted]             (none)     -> origin/render-glimmer-granular
 - [deleted]             (none)     -> origin/revert-28587-revert-28321-dev/remove-create_post_for_category_and_tag_changes-setting
 - [deleted]             (none)     -> origin/revert-location-change
 - [deleted]             (none)     -> origin/revert-thread-title-experiment
 - [deleted]             (none)     -> origin/safari-hacks-sayonara
 - [deleted]             (none)     -> origin/see_if_yarn_cache_is_working
 - [deleted]             (none)     -> origin/shared-draft-category
 - [deleted]             (none)     -> origin/skip-back-button-animation
 - [deleted]             (none)     -> origin/tag-span
 - [deleted]             (none)     -> origin/temp-pr-28024
 - [deleted]             (none)     -> origin/testing_debian_12
 - [deleted]             (none)     -> origin/tobiaseigen-patch-4
 - [deleted]             (none)     -> origin/topic-count-fix
 - [deleted]             (none)     -> origin/topic-list-item-style
 - [deleted]             (none)     -> origin/translations-from-crowdin-main
 - [deleted]             (none)     -> origin/translations-from-crowdin-stable
 - [deleted]             (none)     -> origin/update-gems-stable
 - [deleted]             (none)     -> origin/ux/admin-site-setting-inner-sidebar-experiment
 - [deleted]             (none)     -> origin/whats-new-notify-plugins
   c64b5d6d7..c592edbe3  main                    -> origin/main
 * [new branch]          add-header-search-experience -> origin/add-header-search-experience
 + 3c0b2f75f...0d2238318 allow-posts-link-in-sidebar -> origin/allow-posts-link-in-sidebar  (forced update)
 * [new branch]          async-data              -> origin/async-data
 * [new branch]          automation-autoload     -> origin/automation-autoload
 * [new branch]          br/multiple_likes       -> origin/br/multiple_likes
 * [new branch]          branding-logo           -> origin/branding-logo
 * [new branch]          chat-summary-email-thread-reply-fix -> origin/chat-summary-email-thread-reply-fix
 * [new branch]          d-menu-composer-flag    -> origin/d-menu-composer-flag
 * [new branch]          dark-light-class        -> origin/dark-light-class
 * [new branch]          dark-light-mode-helpers -> origin/dark-light-mode-helpers
 * [new branch]          dependabot/bundler/selenium-webdriver-4.29.1 -> origin/dependabot/bundler/selenium-webdriver-4.29.1
 * [new branch]          dependabot/bundler/version_gem-1.1.5 -> origin/dependabot/bundler/version_gem-1.1.5
 * [new branch]          dependabot/npm_and_yarn/ace-builds-1.39.0 -> origin/dependabot/npm_and_yarn/ace-builds-1.39.0
 * [new branch]          dependabot/npm_and_yarn/discourse/lint-configs-2.7.0 -> origin/dependabot/npm_and_yarn/discourse/lint-configs-2.7.0
 * [new branch]          dependabot/npm_and_yarn/embroider-313a86a52a -> origin/dependabot/npm_and_yarn/embroider-313a86a52a
 * [new branch]          dependabot/npm_and_yarn/glimmer/syntax-0.94.7 -> origin/dependabot/npm_and_yarn/glimmer/syntax-0.94.7
 * [new branch]          dependabot/npm_and_yarn/jspreadsheet-ce-5.0.0 -> origin/dependabot/npm_and_yarn/jspreadsheet-ce-5.0.0
 * [new branch]          dependabot/npm_and_yarn/jsuites-5.9.1 -> origin/dependabot/npm_and_yarn/jsuites-5.9.1
 * [new branch]          dependabot/npm_and_yarn/lefthook-1.11.0 -> origin/dependabot/npm_and_yarn/lefthook-1.11.0
 * [new branch]          dependabot/npm_and_yarn/prosemirror-commands-1.7.0 -> origin/dependabot/npm_and_yarn/prosemirror-commands-1.7.0
 * [new branch]          dependabot/npm_and_yarn/uppy-b82cdcd59c -> origin/dependabot/npm_and_yarn/uppy-b82cdcd59c
 * [new branch]          dev-refactor-password-validation-for-create-account -> origin/dev-refactor-password-validation-for-create-account
 + 72ff8f1eb...699aa3755 dev-refactor-username-validation-mixin-to-helper -> origin/dev-refactor-username-validation-mixin-to-helper  (forced update)
 * [new branch]          dev/auto-screen-size-screenshots -> origin/dev/auto-screen-size-screenshots
 + ec68ffb95...a1849cd39 dev/color-palette-editor -> origin/dev/color-palette-editor  (forced update)
 * [new branch]          dev/ember-async-data-demo -> origin/dev/ember-async-data-demo
 * [new branch]          dev/glimmer-post-stream -> origin/dev/glimmer-post-stream
 * [new branch]          dev/purge-widget-post-menu -> origin/dev/purge-widget-post-menu
 * [new branch]          dev/remove-deprecated-auth-provider-options -> origin/dev/remove-deprecated-auth-provider-options
 * [new branch]          dev/user-field-components-transformer -> origin/dev/user-field-components-transformer
 * [new branch]          discourse-emojis-gem    -> origin/discourse-emojis-gem
 * [new branch]          feature-markdown-hex-color -> origin/feature-markdown-hex-color
 * [new branch]          feature/admin-search-improvements-2 -> origin/feature/admin-search-improvements-2
 * [new branch]          feature/admins-access-group-chats -> origin/feature/admins-access-group-chats
 * [new branch]          feature_pm_codeblock    -> origin/feature_pm_codeblock
 * [new branch]          feature_pm_emoji        -> origin/feature_pm_emoji
 * [new branch]          feature_pm_hashtag      -> origin/feature_pm_hashtag
 * [new branch]          feature_pm_html_block   -> origin/feature_pm_html_block
 * [new branch]          feature_pm_html_inline  -> origin/feature_pm_html_inline
 * [new branch]          feature_pm_image        -> origin/feature_pm_image
 * [new branch]          feature_pm_link         -> origin/feature_pm_link
 * [new branch]          feature_pm_mention      -> origin/feature_pm_mention
 * [new branch]          feature_pm_quote        -> origin/feature_pm_quote
 * [new branch]          feature_pm_strikethrough -> origin/feature_pm_strikethrough
 * [new branch]          feature_pm_table        -> origin/feature_pm_table
 * [new branch]          feature_pm_typographer  -> origin/feature_pm_typographer
 * [new branch]          feature_pm_underline    -> origin/feature_pm_underline
 * [new branch]          filter-navigation-ui    -> origin/filter-navigation-ui
 * [new branch]          fix-zlib                -> origin/fix-zlib
 * [new branch]          fps-errors              -> origin/fps-errors
 * [new branch]          google-topic-count      -> origin/google-topic-count
 * [new branch]          google-translate-defender -> origin/google-translate-defender
 * [new branch]          loic-rspec-instance-var-globally -> origin/loic-rspec-instance-var-globally
 * [new branch]          loic-upgrade-sidekiq    -> origin/loic-upgrade-sidekiq
 * [new branch]          loic-use-bundler-checksums -> origin/loic-use-bundler-checksums
 + 0f2f74d08...06c4fcf62 mt/idb                  -> origin/mt/idb  (forced update)
 * [new branch]          pento/dev-upgrade-pnpm-10 -> origin/pento/dev-upgrade-pnpm-10
 * [new branch]          pento/feature-which-watched-words-were-written -> origin/pento/feature-which-watched-words-were-written
 * [new branch]          quick-smoke-test        -> origin/quick-smoke-test
 + de3691471...e5890e554 renato/pm               -> origin/renato/pm  (forced update)
 * [new branch]          service-to-update-site-settings -> origin/service-to-update-site-settings
 * [new branch]          settings-console-log    -> origin/settings-console-log
 * [new branch]          split-common-css        -> origin/split-common-css
 * [new branch]          split-cook-sanitise     -> origin/split-cook-sanitise
   5d4c2a89e..3bbf96fa2  stable                  -> origin/stable
   c64b5d6d7..c592edbe3  tests-passed            -> origin/tests-passed
 * [new branch]          tobiaseigen-patch-3     -> origin/tobiaseigen-patch-3
 * [new branch]          tobiaseigen-patch-3-1   -> origin/tobiaseigen-patch-3-1
 * [new branch]          topic-list-outlet-add-columns -> origin/topic-list-outlet-add-columns
 * [new branch]          topic-list-outlet-add-columns-stable -> origin/topic-list-outlet-add-columns-stable
   415cccafb..c43caf483  user-fields-plugin-outlets-update -> origin/user-fields-plugin-outlets-update
 * [new branch]          user-menu-full-name-rebased -> origin/user-menu-full-name-rebased
 * [new branch]          user-summary-topic-add-plugin-wrappers -> origin/user-summary-topic-add-plugin-wrappers
   10566d84b..c540132fe  ux/combined-themes-components-sidebar-links -> origin/ux/combined-themes-components-sidebar-links
 * [new branch]          visual-experiment       -> origin/visual-experiment
 t [tag update]          beta                    -> beta
 t [tag update]          latest-release          -> latest-release
 * [new tag]             v3.3.4                  -> v3.3.4
 * [new tag]             v3.4.0                  -> v3.4.0
 * [new tag]             v3.4.0.beta4            -> v3.4.0.beta4
I, [2025-02-23T21:31:57.296600 #1]  INFO -- : 
I, [2025-02-23T21:31:57.296733 #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
'
Switched to a new branch 'tests-passed'
I, [2025-02-23T21:32:04.677353 #1]  INFO -- : branch 'tests-passed' set up to track 'origin/tests-passed'.

I, [2025-02-23T21:32:04.677495 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2025-02-23T21:32:04.687215 #1]  INFO -- : 
I, [2025-02-23T21:32:04.687345 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2025-02-23T21:32:04.689947 #1]  INFO -- : 
I, [2025-02-23T21:32:04.690059 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2025-02-23T21:32:04.692174 #1]  INFO -- : 
I, [2025-02-23T21:32:04.692262 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2025-02-23T21:32:04.694723 #1]  INFO -- : 
I, [2025-02-23T21:32:04.694831 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2025-02-23T21:32:04.697364 #1]  INFO -- : 
I, [2025-02-23T21:32:04.697473 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2025-02-23T21:32:04.700136 #1]  INFO -- : 
I, [2025-02-23T21:32:04.700225 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2025-02-23T21:32:04.702909 #1]  INFO -- : 
I, [2025-02-23T21:32:04.703024 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2025-02-23T21:32:04.706561 #1]  INFO -- : 
I, [2025-02-23T21:32:04.706677 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2025-02-23T21:32:04.710695 #1]  INFO -- : 
I, [2025-02-23T21:32:04.710815 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2025-02-23T21:32:04.714221 #1]  INFO -- : 
I, [2025-02-23T21:32:04.714336 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2025-02-23T21:32:04.717925 #1]  INFO -- : 
I, [2025-02-23T21:32:04.718041 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2025-02-23T21:32:04.721614 #1]  INFO -- : 
I, [2025-02-23T21:32:04.721733 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2025-02-23T21:32:04.725034 #1]  INFO -- : 
I, [2025-02-23T21:32:04.725125 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2025-02-23T21:32:04.730671 #1]  INFO -- : 
I, [2025-02-23T21:32:04.730760 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2025-02-23T21:32:04.732141 #1]  INFO -- : 
I, [2025-02-23T21:32:04.732314 #1]  INFO -- : Replacing # redis with if [ ! -d /shared/redis_data ]; then
  install -d -m 0755 -o redis -g redis /shared/redis_data
fi
sv start redis || exit 1 in /etc/service/unicorn/run
I, [2025-02-23T21:32:04.732683 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2025-02-23T21:32:06.364218 #1]  INFO -- : 
I, [2025-02-23T21:32:06.364365 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/communiteq/discourse-private-topics.git
Cloning into 'discourse-private-topics'...
I, [2025-02-23T21:32:06.892558 #1]  INFO -- : 
I, [2025-02-23T21:32:06.892899 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2025-02-23T21:32:06.896196 #1]  INFO -- : 
I, [2025-02-23T21:32:06.896282 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2025-02-23T21:32:06.897841 #1]  INFO -- : 
I, [2025-02-23T21:32:06.897944 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2025-02-23T21:32:06.899818 #1]  INFO -- : 
I, [2025-02-23T21:32:06.900052 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2025-02-23T21:32:07.254223 #1]  INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2025-02-23T21:32:07.254567 #1]  INFO -- : Replacing (?-mix:server_name.+$) with server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2025-02-23T21:32:07.254851 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2025-02-23T21:32:07.255150 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2025-02-23T21:32:07.255395 #1]  INFO -- : > echo "done configuring web"
I, [2025-02-23T21:32:07.257025 #1]  INFO -- : done configuring web

I, [2025-02-23T21:32:07.257257 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2025-02-23T21:32:07.571956 #1]  INFO -- : 
I, [2025-02-23T21:32:07.572060 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2025-02-23T21:32:10.071774 #1]  INFO -- : 
I, [2025-02-23T21:32:10.072044 #1]  INFO -- : > cd /var/www/discourse && if [ -f yarn.lock ]; then
  if [ -d node_modules/.pnpm ]; then
    echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..."
    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +
  fi
  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'
fi
I, [2025-02-23T21:32:11.693445 #1]  INFO -- : Scope: all 17 workspace projects
Lockfile is up to date, resolution step is skipped
 EINVAL  EINVAL: invalid argument, rmdir '/var/www/discourse/app/assets/javascripts/dialog-holder/node_modules/.bin'




109:signal-handler (1740346331) Received SIGTERM scheduling shutdown...
I, [2025-02-23T21:32:11.694179 #1]  INFO -- : Terminating async processes
I, [2025-02-23T21:32:11.694216 #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/15/bin/postmaster -D /etc/postgresql/15/main pid: 42
I, [2025-02-23T21:32:11.694264 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 109
2025-02-23 21:32:11.694 UTC [42] LOG:  received fast shutdown request
109:M 23 Feb 2025 21:32:11.696 # User requested shutdown...
109:M 23 Feb 2025 21:32:11.697 * Saving the final RDB snapshot before exiting.
2025-02-23 21:32:11.721 UTC [42] LOG:  aborting any active transactions
2025-02-23 21:32:11.723 UTC [42] LOG:  background worker "logical replication launcher" (PID 56) exited with exit code 1
2025-02-23 21:32:11.724 UTC [51] LOG:  shutting down
2025-02-23 21:32:11.741 UTC [51] LOG:  checkpoint starting: shutdown immediate
109:M 23 Feb 2025 21:32:11.743 * DB saved on disk
109:M 23 Feb 2025 21:32:11.744 # Redis is now ready to exit, bye bye...
2025-02-23 21:32:11.808 UTC [51] LOG:  checkpoint complete: wrote 4 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.027 s, total=0.084 s; sync files=3, longest=0.010 s, average=0.009 s; distance=5 kB, estimate=5 kB
2025-02-23 21:32:11.814 UTC [42] LOG:  database system is shut down


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && if [ -f yarn.lock ]; then
  if [ -d node_modules/.pnpm ]; then
    echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..."
    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +
  fi
  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'
fi failed with return #<Process::Status: pid 291 exit 234>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"yarn", "cmd"=>["if [ -f yarn.lock ]; then\n  if [ -d node_modules/.pnpm ]; then\n    echo \"This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up...\"\n    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +\n  fi\n  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'\nelse\n  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'\nfi"]}
bootstrap failed with exit code 234
** 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.
68eb690ebbefa36c472b2628bca09d4d06458c7deb1eafab921cfefc2a7120af

The LXC container is using Debian bullseye with latest updates installed.

Here’s the correct way to switch to PNPM as Discourse has transitioned to PNPM as its package manager,

  1. Ensure PNPM is installed: pnpm --version
  2. If it’s not installed, install it using npm: npm install -g pnpm
  3. Clean up old dependencies:
    rm -rf /var/www/discourse/node_modules
    rm -rf /var/www/discourse/app/assets/javascripts/*/node_modules
  4. Pull the lastest code:
    cd /var/discourse
    git pull
  5. Rebuild Discourse: ./launcher rebuild app
1 Like

Point 4 and git pull isn’t needed, because rebuild does it.

1 Like

It does now, but it didn’t previously, so this is advice which works also for a very old installation.

2 Likes

Well, is out there any that old instances :man_shrugging: Not a big deal, though.

I mention it because when people get trouble upgrading, sometimes the reason is that they are a very long way behind. So it’s in exactly these threads that we should be as robust as we can.

1 Like

How old is your installation? Have you previously upgraded successfully? How old is your OS?

Sometimes a problem is due to extensions which are no longer compatible, and the advice is to share a carefully censored version of your app.yml. I’m not sure if that’s very likely to be the problem here.

Thanks for all the support, unfortunately it does not solve the problem.

For new users maybe worth to add a:

  1. enter container (e.g., ./launcher enter app

So I did. And pnp was already installed:

root@vtdiscourse-app:/var/www/discourse# pnpm --version
9.5.0

I already did, as written in my post above, without solving the problem.

Discourse was installed in April 2023.
I did upgrade successfully up (and including) to v3.4.0.beta3.
As written above, the OS is a LXC container, using Debian bullseye with latest updates installed.

The only installed extension is the Private Topics Plugin (still under maintenance and also kept up to date with each discourse update on my side).

Here we go:

## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Uncomment the next line to enable the IPv6 listener
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Uncomment these two lines if you wish to add Lets Encrypt (https)
  ##- "templates/web.ssl.template.yml"
  - "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Set db_shared_buffers to a max of 25% of the total memory.
  ## will be set automatically by bootstrap based on detected RAM, or you can override
  #db_shared_buffers: "128MB"
  db_shared_buffers: "256MB"

  ## can improve sorting performance, but adds memory usage per-connection
  #db_work_mem: "40MB"

  ## Which Git revision should this container use? (default: tests-passed)
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## How many concurrent web requests are supported? Depends on memory and CPU cores.
  ## will be set automatically by bootstrap based on detected CPUs, or you can override
  UNICORN_WORKERS: 2

  ## TODO: The domain name this Discourse instance will respond to
  ## Required. Discourse will not work with a bare IP number.
  #DISCOURSE_HOSTNAME: 'discourse.example.com'
  DISCOURSE_HOSTNAME: 'my-discourse-domain.example.com'

  ## Uncomment if you want the container to be started with the same
  ## hostname (-h option) as specified above (default "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: List of comma delimited emails that will be made admin and developer
  ## on initial signup example 'user1@example.com,user2@example.com'
  #DISCOURSE_DEVELOPER_EMAILS: 'me@example.com,you@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'my-admin-mail@example.com'

  ## TODO: The SMTP mail server used to validate new accounts and send notifications
  # SMTP ADDRESS, username, and password are required
  # WARNING the char '#' in SMTP password can cause problems!
  #DISCOURSE_SMTP_ADDRESS: smtp.example.com
  DISCOURSE_SMTP_ADDRESS: my-smtp-server.example.com
  #DISCOURSE_SMTP_PORT: 587
  #DISCOURSE_SMTP_USER_NAME: user@example.com
  DISCOURSE_SMTP_USER_NAME: my-user@my-smtp-server.example.com
  #DISCOURSE_SMTP_PASSWORD: pa$$word
  DISCOURSE_SMTP_PASSWORD: foo(obviously not)
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com    # (required by some providers)
  ##DISCOURSE_NOTIFICATION_EMAIL: noreply@discourse.example.com    # (address to send notifications from)
  DISCOURSE_NOTIFICATION_EMAIL: my-user@my-smtp-server.example.com    # (address to send notifications from)

  ## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## The http or https CDN address for this Discourse instance (configured to pull)
  ## see https://meta.discourse.org/t/14857 for details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com
  
  ## The maxmind geolocation IP address key for IP address lookup
  ## see https://meta.discourse.org/t/-/137387/23 for details
  ##DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
  DISCOURSE_MAXMIND_LICENSE_KEY: my-key

## The Docker container is stateless; all data is stored in /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/communiteq/discourse-private-topics.git

## Any custom commands to run after building
run:
  - exec: echo "Beginning of custom commands"
  ## If you want to set the 'From' email address for your first registration, uncomment and change:
  ## After getting the first signup email, re-comment the line. It only needs to run once.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

Any help appreciated.

I updated to the current Debian bookworm and tried again, but the error persists. Does anyone have any idea?

Are you getting the exact same error message?

?

Yes, the current output is:

# ./launcher rebuild app
x86_64 arch detected.
Ensuring launcher is up to date
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20250226-0128: Pulling from discourse/base
Digest: sha256:6f18aa2cd22bba0deb91d69194e577d4f96130ad555ae8ec646a8792cbfe37db
Status: Image is up to date for discourse/base:2.0.20250226-0128
docker.io/discourse/base:2.0.20250226-0128
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-03-06T16:11:32.513131 #1]  INFO -- : Reading from stdin
I, [2025-03-06T16:11:32.523975 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2025-03-06T16:11:32.527167 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2025-03-06T16:11:32.530386 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2025-03-06T16:11:32.533638 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown: 
I, [2025-03-06T16:11:32.536573 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2025-03-06T16:11:32.536864 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/15/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/15/main/postgresql.conf
I, [2025-03-06T16:11:32.742156 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/15/main/postgresql.conf
I, [2025-03-06T16:11:32.742501 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/15/main/postgresql.conf
I, [2025-03-06T16:11:32.742892 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/15/main/postgresql.conf
I, [2025-03-06T16:11:32.743202 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/15/main/postgresql.conf
I, [2025-03-06T16:11:32.743514 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/15/main/postgresql.conf
I, [2025-03-06T16:11:32.743832 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/15/main/postgresql.conf
I, [2025-03-06T16:11:32.747361 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/15/main/postgresql.conf
I, [2025-03-06T16:11:32.747916 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/15/main/postgresql.conf
I, [2025-03-06T16:11:32.748277 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/15/main/pg_hba.conf
I, [2025-03-06T16:11:32.975264 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-03-06T16:11:32.975566 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-03-06T16:11:32.975943 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi

I, [2025-03-06T16:14:47.308430 #1]  INFO -- : Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

I, [2025-03-06T16:14:47.310318 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
I, [2025-03-06T16:14:47.316234 #1]  INFO -- : File > /usr/local/bin/create_db  chmod: +x  chown: 
I, [2025-03-06T16:14:47.321059 #1]  INFO -- : File > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2025-03-06T16:14:47.323488 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:   chown: 
I, [2025-03-06T16:14:47.323675 #1]  INFO -- : > sleep 5
2025-03-06 16:14:47.377 UTC [42] LOG:  starting PostgreSQL 15.12 (Debian 15.12-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2025-03-06 16:14:47.377 UTC [42] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2025-03-06 16:14:47.377 UTC [42] LOG:  listening on IPv6 address "::", port 5432
2025-03-06 16:14:47.390 UTC [42] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2025-03-06 16:14:47.408 UTC [53] LOG:  database system was shut down at 2025-03-06 15:56:16 UTC
2025-03-06 16:14:47.419 UTC [42] LOG:  database system is ready to accept connections
I, [2025-03-06T16:14:52.325371 #1]  INFO -- : 
I, [2025-03-06T16:14:52.325520 #1]  INFO -- : > /usr/local/bin/create_db
2025-03-06 16:14:52.388 UTC [60] postgres@postgres ERROR:  database "discourse" already exists
2025-03-06 16:14:52.388 UTC [60] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR:  database "discourse" already exists
2025-03-06 16:14:52.450 UTC [63] postgres@discourse ERROR:  role "discourse" already exists
2025-03-06 16:14:52.450 UTC [63] postgres@discourse STATEMENT:  create user discourse;
ERROR:  role "discourse" already exists
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
NOTICE:  version "0.8.0" of extension "vector" is already installed
NOTICE:  extension "hstore" already exists, skipping
NOTICE:  extension "pg_trgm" already exists, skipping
NOTICE:  extension "vector" already exists, skipping
NOTICE:  version "0.8.0" of extension "vector" is already installed
I, [2025-03-06T16:14:53.059363 #1]  INFO -- : GRANT
ALTER SCHEMA
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
UPDATE 0

I, [2025-03-06T16:14:53.059480 #1]  INFO -- : > echo postgres installed!
I, [2025-03-06T16:14:53.061579 #1]  INFO -- : postgres installed!

I, [2025-03-06T16:14:53.064856 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown: 
I, [2025-03-06T16:14:53.067831 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  chown: 
I, [2025-03-06T16:14:53.071084 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown: 
I, [2025-03-06T16:14:53.071493 #1]  INFO -- : Replacing daemonize yes with  in /etc/redis/redis.conf
I, [2025-03-06T16:14:53.289163 #1]  INFO -- : Replacing (?-mix:^pidfile.*$) with  in /etc/redis/redis.conf
I, [2025-03-06T16:14:53.289618 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2025-03-06T16:14:53.291845 #1]  INFO -- : 
I, [2025-03-06T16:14:53.292149 #1]  INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2025-03-06T16:14:53.292587 #1]  INFO -- : Replacing (?-mix:^bind .*$) with  in /etc/redis/redis.conf
I, [2025-03-06T16:14:53.293010 #1]  INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2025-03-06T16:14:53.293469 #1]  INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2025-03-06T16:14:53.293836 #1]  INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2025-03-06T16:14:53.294165 #1]  INFO -- : > echo redis installed
I, [2025-03-06T16:14:53.295528 #1]  INFO -- : redis installed

I, [2025-03-06T16:14:53.295670 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2025-03-06T16:14:53.298418 #1]  INFO -- : logfile ""

I, [2025-03-06T16:14:53.298662 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2025-03-06T16:14:53.299876 #1]  INFO -- : > sleep 10
109:C 06 Mar 2025 16:14:53.307 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
109:C 06 Mar 2025 16:14:53.307 # Redis version=7.0.15, bits=64, commit=00000000, modified=0, pid=109, just started
109:C 06 Mar 2025 16:14:53.307 # Configuration loaded
109:M 06 Mar 2025 16:14:53.307 * monotonic clock: POSIX clock_gettime
109:M 06 Mar 2025 16:14:53.308 * Running mode=standalone, port=6379.
109:M 06 Mar 2025 16:14:53.308 # Server initialized
109:M 06 Mar 2025 16:14:53.308 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
109:M 06 Mar 2025 16:14:53.308 * Loading RDB produced by version 7.0.15
109:M 06 Mar 2025 16:14:53.308 * RDB age 1118 seconds
109:M 06 Mar 2025 16:14:53.308 * RDB memory usage when created 1.93 Mb
109:M 06 Mar 2025 16:14:53.313 * Done loading RDB, keys loaded: 1587, keys expired: 0.
109:M 06 Mar 2025 16:14:53.313 * DB loaded from disk: 0.005 seconds
109:M 06 Mar 2025 16:14:53.313 * Ready to accept connections
I, [2025-03-06T16:15:03.301567 #1]  INFO -- : 
I, [2025-03-06T16:15:03.301799 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2025-03-06T16:15:03.304659 #1]  INFO -- : thpoff is installed!

I, [2025-03-06T16:15:03.304912 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2025-03-06T16:15:03.400091 #1]  INFO -- : 
I, [2025-03-06T16:15:03.400231 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2025-03-06T16:15:03.492187 #1]  INFO -- : 
I, [2025-03-06T16:15:03.492318 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2025-03-06T16:15:03.582055 #1]  INFO -- : 
I, [2025-03-06T16:15:03.582264 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2025-03-06T16:15:03.584313 #1]  INFO -- : 
I, [2025-03-06T16:15:03.586295 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown: 
I, [2025-03-06T16:15:03.589760 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown: 
I, [2025-03-06T16:15:03.592914 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown: 
I, [2025-03-06T16:15:03.596214 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown: 
I, [2025-03-06T16:15:03.599588 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown: 
I, [2025-03-06T16:15:03.602811 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown: 
I, [2025-03-06T16:15:03.602962 #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-03-06T16:15:03.604280 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2025-03-06T16:15:03.832806 #1]  INFO -- : 
I, [2025-03-06T16:15:03.832950 #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/add-header-search-experience
 - [deleted]             (none)     -> origin/branding-logo
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/glimmer/syntax-0.94.7
 - [deleted]             (none)     -> origin/dev-refactor-password-validation-for-create-account
 - [deleted]             (none)     -> origin/ellaestigoy-patch-1
 - [deleted]             (none)     -> origin/feature/admin-search-improvements-2
 - [deleted]             (none)     -> origin/feature/admins-access-group-chats
 - [deleted]             (none)     -> origin/feature_pm_emoji
 - [deleted]             (none)     -> origin/feature_pm_hashtag
 - [deleted]             (none)     -> origin/feature_pm_image
 - [deleted]             (none)     -> origin/feature_pm_link
 - [deleted]             (none)     -> origin/feature_pm_mention
 - [deleted]             (none)     -> origin/feature_pm_quote
 - [deleted]             (none)     -> origin/feature_pm_strikethrough
 - [deleted]             (none)     -> origin/feature_pm_table
 - [deleted]             (none)     -> origin/feature_pm_underline
 - [deleted]             (none)     -> origin/fix/allow-oneboxes-with-no-description
 - [deleted]             (none)     -> origin/loic-upgrade-sidekiq
 - [deleted]             (none)     -> origin/loic-use-bundler-checksums
 - [deleted]             (none)     -> origin/pento/feature-which-watched-words-were-written
 - [deleted]             (none)     -> origin/pento/fix-block-googlebot-from-search
 - [deleted]             (none)     -> origin/tobiaseigen-patch-3-1
   48bfa202e..fb76696f4  main                    -> origin/main
 * [new branch]          0-a-codemod             -> origin/0-a-codemod
 * [new branch]          add-outlet-for-topic-list-item -> origin/add-outlet-for-topic-list-item
 * [new branch]          add-serializer-include-cond -> origin/add-serializer-include-cond
 * [new branch]          adjust-image-upload-component -> origin/adjust-image-upload-component
 * [new branch]          backport-transformer-to-stable -> origin/backport-transformer-to-stable
 + abd422fb0...087b2c0b4 dependabot/bundler/fastimage-2.4.0 -> origin/dependabot/bundler/fastimage-2.4.0  (forced update)
 + ad7276f06...53cae1918 dependabot/bundler/redcarpet-3.6.1 -> origin/dependabot/bundler/redcarpet-3.6.1  (forced update)
 * [new branch]          dependabot/npm_and_yarn/glimmer/syntax-0.94.8 -> origin/dependabot/npm_and_yarn/glimmer/syntax-0.94.8
 * [new branch]          dependabot/npm_and_yarn/prosemirror-schema-list-1.5.1 -> origin/dependabot/npm_and_yarn/prosemirror-schema-list-1.5.1
 * [new branch]          dependabot/npm_and_yarn/prosemirror-transform-1.10.3 -> origin/dependabot/npm_and_yarn/prosemirror-transform-1.10.3
 * [new branch]          dependabot/npm_and_yarn/prosemirror-view-1.38.1 -> origin/dependabot/npm_and_yarn/prosemirror-view-1.38.1
 + b5cee8b92...23a49f3b5 dependabot/npm_and_yarn/uppy-27ae46fdd6 -> origin/dependabot/npm_and_yarn/uppy-27ae46fdd6  (forced update)
 * [new branch]          dev-refactor-user-fields-mixin -> origin/dev-refactor-user-fields-mixin
   6f9238338..229d1c347  dev/auto-screen-size-screenshots -> origin/dev/auto-screen-size-screenshots
 * [new branch]          dev/backfill-api-key-scope-modes -> origin/dev/backfill-api-key-scope-modes
 + 3896206dc...85a981c1f dev/glimmer-post-stream -> origin/dev/glimmer-post-stream  (forced update)
 * [new branch]          dev/refactor-reports-index-service -> origin/dev/refactor-reports-index-service
 * [new branch]          dev/show-scope-mode-in-api-key-list -> origin/dev/show-scope-mode-in-api-key-list
 + 5350c1a3d...89bb01474 discourse-emojis-gem    -> origin/discourse-emojis-gem  (forced update)
   6eb2d9d46..de01247f6  ellaestigoy-patch-2     -> origin/ellaestigoy-patch-2
 * [new branch]          feature/add-below-op-plugin-outlet -> origin/feature/add-below-op-plugin-outlet
   61e65fab0..7c3aafefe  feature/add-welcome-banner-to-core -> origin/feature/add-welcome-banner-to-core
 * [new branch]          feature/admin-search-improvements-3 -> origin/feature/admin-search-improvements-3
   a1bc7c9ce..052ab4478  feature_pm_codeblock    -> origin/feature_pm_codeblock
   e6073220a..38ce43079  feature_pm_html_block   -> origin/feature_pm_html_block
   8deec2953..e8bb88708  feature_pm_html_inline  -> origin/feature_pm_html_inline
 * [new branch]          feature_pm_onebox       -> origin/feature_pm_onebox
   05ad060b0..f9439c845  feature_pm_typographer  -> origin/feature_pm_typographer
 * [new branch]          form_template_composer_field -> origin/form_template_composer_field
 * [new branch]          intersection-observer   -> origin/intersection-observer
 * [new branch]          loic-sidekiq-migration-stable -> origin/loic-sidekiq-migration-stable
 * [new branch]          loic-sidekiq-upgrade    -> origin/loic-sidekiq-upgrade
 + 06c4fcf62...a905fe797 mt/idb                  -> origin/mt/idb  (forced update)
 * [new branch]          pr/31217                -> origin/pr/31217
 + db6e9def3...68f0b10a0 reapply_refactor        -> origin/reapply_refactor  (forced update)
 * [new branch]          remote-update-topic     -> origin/remote-update-topic
   10691bbec..ddcd84812  renato/pm               -> origin/renato/pm
 * [new branch]          revert-31540-revert-search-change -> origin/revert-31540-revert-search-change
   909b93f40..0a7a0dcff  stable                  -> origin/stable
   57a0bfaef..fb76696f4  tests-passed            -> origin/tests-passed
 + c540132fe...703370c93 ux/combined-themes-components-sidebar-links -> origin/ux/combined-themes-components-sidebar-links  (forced update)
I, [2025-03-06T16:15:04.647091 #1]  INFO -- : 
I, [2025-03-06T16:15:04.647232 #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
'
Switched to a new branch 'tests-passed'
I, [2025-03-06T16:15:13.381654 #1]  INFO -- : branch 'tests-passed' set up to track 'origin/tests-passed'.

I, [2025-03-06T16:15:13.381798 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2025-03-06T16:15:13.391367 #1]  INFO -- : 
I, [2025-03-06T16:15:13.391496 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2025-03-06T16:15:13.394199 #1]  INFO -- : 
I, [2025-03-06T16:15:13.394316 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2025-03-06T16:15:13.396723 #1]  INFO -- : 
I, [2025-03-06T16:15:13.396823 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2025-03-06T16:15:13.399170 #1]  INFO -- : 
I, [2025-03-06T16:15:13.399285 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2025-03-06T16:15:13.401760 #1]  INFO -- : 
I, [2025-03-06T16:15:13.401868 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2025-03-06T16:15:13.404115 #1]  INFO -- : 
I, [2025-03-06T16:15:13.404184 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2025-03-06T16:15:13.406561 #1]  INFO -- : 
I, [2025-03-06T16:15:13.406676 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2025-03-06T16:15:13.410140 #1]  INFO -- : 
I, [2025-03-06T16:15:13.410262 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2025-03-06T16:15:13.414018 #1]  INFO -- : 
I, [2025-03-06T16:15:13.414091 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2025-03-06T16:15:13.417307 #1]  INFO -- : 
I, [2025-03-06T16:15:13.417424 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2025-03-06T16:15:13.420633 #1]  INFO -- : 
I, [2025-03-06T16:15:13.420749 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2025-03-06T16:15:13.424027 #1]  INFO -- : 
I, [2025-03-06T16:15:13.424099 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2025-03-06T16:15:13.427404 #1]  INFO -- : 
I, [2025-03-06T16:15:13.427520 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2025-03-06T16:15:13.432996 #1]  INFO -- : 
I, [2025-03-06T16:15:13.433119 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2025-03-06T16:15:13.434610 #1]  INFO -- : 
I, [2025-03-06T16:15:13.434886 #1]  INFO -- : Replacing # redis with if [ ! -d /shared/redis_data ]; then
  install -d -m 0755 -o redis -g redis /shared/redis_data
fi
sv start redis || exit 1 in /etc/service/unicorn/run
I, [2025-03-06T16:15:13.435314 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2025-03-06T16:15:14.815744 #1]  INFO -- : 
I, [2025-03-06T16:15:14.815886 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/communiteq/discourse-private-topics.git
Cloning into 'discourse-private-topics'...
I, [2025-03-06T16:15:15.328831 #1]  INFO -- : 
I, [2025-03-06T16:15:15.329183 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2025-03-06T16:15:15.332191 #1]  INFO -- : 
I, [2025-03-06T16:15:15.332306 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2025-03-06T16:15:15.334038 #1]  INFO -- : 
I, [2025-03-06T16:15:15.334129 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2025-03-06T16:15:15.335827 #1]  INFO -- : 
I, [2025-03-06T16:15:15.336010 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2025-03-06T16:15:15.650801 #1]  INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2025-03-06T16:15:15.651132 #1]  INFO -- : Replacing (?-mix:server_name.+$) with server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2025-03-06T16:15:15.651408 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2025-03-06T16:15:15.651738 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2025-03-06T16:15:15.651995 #1]  INFO -- : > echo "done configuring web"
I, [2025-03-06T16:15:15.653682 #1]  INFO -- : done configuring web

I, [2025-03-06T16:15:15.653902 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2025-03-06T16:15:16.407916 #1]  INFO -- : Successfully installed bundler-2.6.4
1 gem installed

I, [2025-03-06T16:15:16.408068 #1]  INFO -- : > cd /var/www/discourse && find /var/www/discourse ! -user discourse -exec chown discourse {} \+
I, [2025-03-06T16:15:18.880148 #1]  INFO -- : 
I, [2025-03-06T16:15:18.880522 #1]  INFO -- : > cd /var/www/discourse && if [ -f yarn.lock ]; then
  if [ -d node_modules/.pnpm ]; then
    echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..."
    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +
  fi
  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'
fi
I, [2025-03-06T16:15:20.413858 #1]  INFO -- : Scope: all 17 workspace projects
Lockfile is up to date, resolution step is skipped
 EINVAL  EINVAL: invalid argument, rmdir '/var/www/discourse/app/assets/javascripts/dialog-holder/node_modules/.bin'




I, [2025-03-06T16:15:20.414389 #1]  INFO -- : Terminating async processes
I, [2025-03-06T16:15:20.414429 #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/15/bin/postmaster -D /etc/postgresql/15/main pid: 42
I, [2025-03-06T16:15:20.414484 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 109
2025-03-06 16:15:20.414 UTC [42] LOG:  received fast shutdown request
109:signal-handler (1741277720) Received SIGTERM scheduling shutdown...
2025-03-06 16:15:20.441 UTC [42] LOG:  aborting any active transactions
2025-03-06 16:15:20.443 UTC [42] LOG:  background worker "logical replication launcher" (PID 56) exited with exit code 1
2025-03-06 16:15:20.445 UTC [51] LOG:  shutting down
2025-03-06 16:15:20.450 UTC [51] LOG:  checkpoint starting: shutdown immediate
109:M 06 Mar 2025 16:15:20.499 # User requested shutdown...
109:M 06 Mar 2025 16:15:20.499 * Saving the final RDB snapshot before exiting.
2025-03-06 16:15:20.538 UTC [51] LOG:  checkpoint complete: wrote 4 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.027 s, total=0.093 s; sync files=3, longest=0.010 s, average=0.009 s; distance=6 kB, estimate=6 kB
2025-03-06 16:15:20.544 UTC [42] LOG:  database system is shut down
109:M 06 Mar 2025 16:15:20.547 * DB saved on disk
109:M 06 Mar 2025 16:15:20.547 # Redis is now ready to exit, bye bye...


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && if [ -f yarn.lock ]; then
  if [ -d node_modules/.pnpm ]; then
    echo "This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up..."
    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +
  fi
  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
else
  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'
fi failed with return #<Process::Status: pid 301 exit 234>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"yarn", "cmd"=>["if [ -f yarn.lock ]; then\n  if [ -d node_modules/.pnpm ]; then\n    echo \"This version of Discourse uses yarn, but pnpm node_modules are preset. Cleaning up...\"\n    find ./node_modules ./app/assets/javascripts/*/node_modules -mindepth 1 -maxdepth 1 -exec rm -rf {} +\n  fi\n  su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'\nelse\n  su discourse -c 'CI=1 pnpm install --frozen-lockfile && pnpm prune'\nfi"]}
bootstrap failed with exit code 234
** 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.
f489854c1c937e881235de4e2a32a30b1e55237b5f20d4599d2af9aa73a2affc

I can’t reproduce this on my server. Can you share more details about the server you are using? What is the VPS provider, OS and version and the output of docker info.

1 Like

The LXC container is running on a Proxmox VE 7.4-19 (kernel Linux 5.15.158-2-pve #1 SMP PVE 5.15.158-2), on a hardware with 8 x Intel(R) Xeon(R) CPU W3550 @ 3.07GHz .

Debian 12 (Bookworm) 64bit, updated earlier today from a Debian 11 (Bullseye) (it’s a Turnkey Linux 17 appliance).

# docker info
Client: Docker Engine - Community
 Version:    28.0.1
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.21.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.33.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 2
  Running: 1
  Paused: 0
  Stopped: 1
 Images: 6
 Server Version: 28.0.1
 Storage Driver: overlay2
  Backing Filesystem: zfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: true
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: bcc810d6b9066471b0b6fa75f557a15a1cbf31bb
 runc version: v1.2.4-0-g6c52b3f
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 5.15.158-2-pve
 Operating System: Debian GNU/Linux 12 (bookworm)
 OSType: linux
 Architecture: x86_64
 CPUs: 4
 Total Memory: 6GiB
 Name: vtdiscourse
 ID: 9ea13423-e1f4-43e2-a8f4-b881b1ffe215
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  ::1/128
  127.0.0.0/8
 Live Restore Enabled: false

I’m happy to provide any additional info, that helps solving the issue.

Wow, that is a over 15 years old CPU. While we had problems with old CPUs in the past, it doesn’t look like this is the issue this time.

So it is like this?

architecture-beta
    group host(server)[host]
          group lxc(server)[lxc] in host
              group docker(server)[discourse docker container] in lxc

And it’s still running fine. :wink: While sustainability is indeed a topic, this system was intended as a test system and the goal is now to update discourse and then move it to the productive PVE cluster on recent and more appropriate hardware.

Yes. The PVE is running on bare metal. Inside the PVE, a CT (LXC) guest is used to run a TKL appliance, which was used to install discourse via docker.
(Note: on the productive PVE cluster we plan to use a VM (Qemu) with vanilla Debian to run the discourse docker, which is the more recommend way)

1 Like

So the pnpm install for v3.4.0.beta3 worked fine, but the latest version of Discourse does not? Very strange!

One thing to bear in mind is that, compared to other package managers, pnpm makes very heavy use of “hard links” on the filesystem. That can cause problems on some filesystem types… although it is supposed to automatically fallback to a non-hardlink-based strategy. More info on that here.

Comparing to a standard install:

 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false

So, overlay2 is the same. But the backing filesystem is different… I don’t know if that would have any bearing on this kind of problem?

2 Likes

yes.

I’m open to provide additional information, if you tell me how/what to debug…

The affected installation is a test installation. I’m having a productive installation running on the same hardware/setup (which I’m currently reluctant to update…).