Mini_racer.rb falha de segmentação durante assets:precompile

Recentemente executei uma atualização, estava cerca de 20 dias atrasado, e deparei com um despejo de núcleo (core dump) consistente do mini_racer.rb durante rake themes:updateassets:precompile

Esta é uma configuração multisite e consigo reproduzir o problema em várias máquinas copiando o estado de /var/discourse para outra máquina e executando novamente ./launcher rebuild app.

Percebendo onde estava a falha, criei uma imagem sem a etapa de pré-compilação.
Quando executei novamente o comando de pré-compilação dentro do container do app, o mesmo erro “[BUG] Segmentation fault at 0x000016815713b548” ocorria consistentemente.

No entanto, quando executei a pré-compilação para cada site individualmente utilizando RAILS_DB, a etapa de pré-compilação de cada site foi concluída sem problemas e uma execução subsequente do comando original sem RAILS_DB especificado passou e continua passando sem problemas.

Estou enviando isso caso alguém mais tenha o problema e precise avançar ou se eu puder ajudar a rastrear o bug para os desenvolvedores. Se isso for um bug muito específico da configuração ou for mais adequado como um bug contra o mini_racer, me avise.


Abaixo estão informações adicionais:
Tenho o estado do db salvo que me permite reproduzir a falha relativamente fácil.

coredump bt full output

Isso é o que consegui obter do coredump, não muito, dada a falta de símbolos.

(gdb) bt full
#0  0x00007dbf36e168ee in ?? () from /lib/x86_64-linux-gnu/libgcc_s.so.1
No symbol table info available.
#1  0x00007dbf36e1864b in _Unwind_Backtrace () from /lib/x86_64-linux-gnu/libgcc_s.so.1
No symbol table info available.
#2  0x00007dbf366558ff in __GI___backtrace (array=array@entry=0x7dbf36dee9e0 "<trace>, size=size@entry=1024)
    at ./debug/backtrace.c:78
        arg = {array = 0x7dbf36dee9e0 <trace>, unwind_link = 0x7dbf3671a600 <global>, cfa = 99493855763264, 
          cnt = 4, size = 1024}
#3  0x00007dbf36b1857b in rb_print_backtrace (errout=0x7dbf36713680 <_IO_2_1_stderr_>) at vm_dump.c:820
        n = <optimized out>
        trace = {0x7dbf36b1857b <rb_vm_bugreport+2411>, 0x7dbf36912840 <rb_bug_for_fatal_signal+256>, 
          0x7dbf36a63f8b, 0x7dbf3657c050 <__restore_rt>, 0x0 <repeats 1020 times>}
        n = <optimized out>
#4  rb_vm_bugreport (ctx=ctx@entry=0x5a7d37ee1b40, errout=errout@entry=0x7dbf36713680 <_IO_2_1_stderr_>)
    at vm_dump.c:1151
        cmd = <optimized out>
        error = <optimized out>
        other_runtime_info = other_runtime_info
        vm = 0x5a7d32dfdb70
        ec = <optimized out>
#5  0x00007dbf36912840 in rb_bug_for_fatal_signal (default_sighandler=0x0, sig=sig@entry=11, 
    ctx=ctx@entry=0x5a7d37ee1b40, fmt=fmt@entry=0x7dbf36c764d5 "Segmentation fault at %p") at error.c:1065
        pid = -1
        out = 0x7dbf36713680 <_IO_2_1_stderr_>
        file = <optimized out>
        line = 251
#6  0x00007dbf36a63f8b in sigsegv (sig=11, info=0x5a7d37ee1c70, ctx=0x5a7d37ee1b40) at signal.c:926
No locals.
#7  <signal handler called>
No locals.
#8  0x000002aa2ca82540 in ?? ()
No symbol table info available.
#9  0x000002aa2cebaef0 in ?? ()
No symbol table info available.
#10 0x00003b134cc41151 in ?? ()
No symbol table info available.
#11 0x0000166e35e16221 in ?? ()
No symbol table info available.
#12 0x000000000000000a in ?? ()
No symbol table info available.
#13 0x00007dbf0e3fc6d8 in ?? ()
No symbol table info available.
#14 0x000002aa2cd99226 in ?? ()
No symbol table info available.
#15 0x000fff480e3fc858 in ?? ()
No symbol table info available.
#16 0x0000000000000000 in ?? ()
No symbol table info available.

Aqui está a saída completa de ./launcher rebuild app
O erro começa em

[2024-11-02T01:47:24.999880 #1] INFO – : > cd /var/www/discourse && su discourse -c ‘SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile’

[details=Saída Completa da Construção]

root@bui /var/discourse (main)# ./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.20240825-0027: Pulling from discourse/base
Digest: sha256:6de68cb49198b5281f79ed9401b3fe818c854d220dcf0238549fe2f2adb19146
Status: Image is up to date for discourse/base:2.0.20240825-0027
docker.io/discourse/base:2.0.20240825-0027
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-11-02T01:44:52.378303 #1]  INFO -- : Reading from stdin
I, [2024-11-02T01:44:52.383987 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2024-11-02T01:44:52.385967 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2024-11-02T01:44:52.387891 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2024-11-02T01:44:52.389701 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown: 
I, [2024-11-02T01:44:52.391627 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2024-11-02T01:44:52.391731 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/13/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-02T01:44:52.392012 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-02T01:44:52.392219 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-02T01:44:52.396485 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-02T01:44:52.396649 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-02T01:44:52.396807 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-02T01:44:52.396996 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-02T01:44:52.397152 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-02T01:44:52.397320 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2024-11-02T01:44:52.397485 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2024-11-02T01:44:52.397611 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-11-02T01:44:52.397743 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-11-02T01:44:52.397920 #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, [2024-11-02T01:44:53.461893 #1]  INFO -- : Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

I, [2024-11-02T01:44:53.462006 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2024-11-02T01:44:53.464711 #1]  INFO -- : File > /usr/local/bin/create_db  chmod: +x  chown: 
I, [2024-11-02T01:44:53.467297 #1]  INFO -- : File > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2024-11-02T01:44:53.468393 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:   chown: 
I, [2024-11-02T01:44:53.468514 #1]  INFO -- : > sleep 5
2024-11-02 01:44:53.506 UTC [39] LOG:  starting PostgreSQL 13.16 (Debian 13.16-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2024-11-02 01:44:53.507 UTC [39] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-11-02 01:44:53.507 UTC [39] LOG:  listening on IPv6 address "::", port 5432
2024-11-02 01:44:53.518 UTC [39] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-11-02 01:44:53.533 UTC [48] LOG:  database system was shut down at 2024-11-02 00:16:33 UTC
2024-11-02 01:44:53.542 UTC [39] LOG:  database system is ready to accept connections
I, [2024-11-02T01:44:58.469404 #1]  INFO -- : 
I, [2024-11-02T01:44:58.469488 #1]  INFO -- : > /usr/local/bin/create_db
2024-11-02 01:44:58.512 UTC [58] postgres@postgres ERROR:  database "discourse" already exists
2024-11-02 01:44:58.512 UTC [58] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: database creation failed: ERROR:  database "discourse" already exists
2024-11-02 01:44:58.550 UTC [61] postgres@discourse ERROR:  role "discourse" already exists
2024-11-02 01:44:58.550 UTC [61] 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.7.4" 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.7.4" of extension "vector" is already installed
I, [2024-11-02T01:44:58.875599 #1]  INFO -- : GRANT
ALTER SCHEMA
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
CREATE EXTENSION
CREATE EXTENSION
CREATE EXTENSION
ALTER EXTENSION
UPDATE 0

I, [2024-11-02T01:44:58.875658 #1]  INFO -- : > echo postgres installed!
I, [2024-11-02T01:44:58.876655 #1]  INFO -- : postgres installed!

I, [2024-11-02T01:44:58.876751 #1]  INFO -- : > sudo -u postgres createdb zab_discourse || exit 0
2024-11-02 01:44:58.901 UTC [99] postgres@postgres ERROR:  database "zab_discourse" already exists
2024-11-02 01:44:58.901 UTC [99] postgres@postgres STATEMENT:  CREATE DATABASE zab_discourse;
createdb: error: database creation failed: ERROR:  database "zab_discourse" already exists
I, [2024-11-02T01:44:58.902590 #1]  INFO -- : 
I, [2024-11-02T01:44:58.902722 #1]  INFO -- : > sudo -u postgres psql zab_discourse
I, [2024-11-02T01:44:58.903456 #1]  INFO -- : grant all privileges on database zab_discourse to discourse;
grant all privileges on database devsite_discourse to discourse;

I, [2024-11-02T01:44:58.929995 #1]  INFO -- : > /bin/bash -c 'sudo -u postgres psql zab_discourse <<< "alter schema public owner to discourse;"'
I, [2024-11-02T01:44:58.957252 #1]  INFO -- : ALTER SCHEMA

I, [2024-11-02T01:44:58.957405 #1]  INFO -- : > /bin/bash -c 'sudo -u postgres psql zab_discourse <<< "create extension if not exists hstore;"'
NOTICE:  extension "hstore" already exists, skipping
I, [2024-11-02T01:44:58.984839 #1]  INFO -- : CREATE EXTENSION

I, [2024-11-02T01:44:58.984945 #1]  INFO -- : > /bin/bash -c 'sudo -u postgres psql zab_discourse <<< "create extension if not exists pg_trgm;"'
NOTICE:  extension "pg_trgm" already exists, skipping
I, [2024-11-02T01:44:59.011819 #1]  INFO -- : CREATE EXTENSION

I, [2024-11-02T01:44:59.011953 #1]  INFO -- : > sudo -u postgres createdb devsite_discourse || exit 0
2024-11-02 01:44:59.036 UTC [121] postgres@postgres ERROR:  database "devsite_discourse" already exists
2024-11-02 01:44:59.036 UTC [121] postgres@postgres STATEMENT:  CREATE DATABASE devsite_discourse;
createdb: error: database creation failed: ERROR:  database "devsite_discourse" already exists
I, [2024-11-02T01:44:59.037669 #1]  INFO -- : 
I, [2024-11-02T01:44:59.037823 #1]  INFO -- : > sudo -u postgres psql devsite_discourse
I, [2024-11-02T01:44:59.038719 #1]  INFO -- : grant all privileges on database devsite_discourse to discourse;
grant all privileges on database devsite_discourse to discourse;

I, [2024-11-02T01:44:59.065215 #1]  INFO -- : > /bin/bash -c 'sudo -u postgres psql devsite_discourse <<< "alter schema public owner to discourse;"'
I, [2024-11-02T01:44:59.092386 #1]  INFO -- : ALTER SCHEMA

I, [2024-11-02T01:44:59.092489 #1]  INFO -- : > /bin/bash -c 'sudo -u postgres psql devsite_discourse <<< "create extension if not exists hstore;"'
NOTICE:  extension "hstore" already exists, skipping
I, [2024-11-02T01:44:59.119000 #1]  INFO -- : CREATE EXTENSION

I, [2024-11-02T01:44:59.119113 #1]  INFO -- : > /bin/bash -c 'sudo -u postgres psql devsite_discourse <<< "create extension if not exists pg_trgm;"'
NOTICE:  extension "pg_trgm" already exists, skipping
I, [2024-11-02T01:44:59.145739 #1]  INFO -- : CREATE EXTENSION

I, [2024-11-02T01:44:59.147856 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown: 
I, [2024-11-02T01:44:59.149569 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  chown: 
I, [2024-11-02T01:44:59.151148 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown: 
I, [2024-11-02T01:44:59.151243 #1]  INFO -- : Replacing daemonize yes with  in /etc/redis/redis.conf
I, [2024-11-02T01:44:59.151529 #1]  INFO -- : Replacing (?-mix:^pidfile.*$) with  in /etc/redis/redis.conf
I, [2024-11-02T01:44:59.151730 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2024-11-02T01:44:59.152726 #1]  INFO -- : 
I, [2024-11-02T01:44:59.152872 #1]  INFO -- : Replacing (?-mix:^logfile.*$) with logfile "" in /etc/redis/redis.conf
I, [2024-11-02T01:44:59.156046 #1]  INFO -- : Replacing (?-mix:^bind .*$) with  in /etc/redis/redis.conf
I, [2024-11-02T01:44:59.156392 #1]  INFO -- : Replacing (?-mix:^dir .*$) with dir /shared/redis_data in /etc/redis/redis.conf
I, [2024-11-02T01:44:59.156816 #1]  INFO -- : Replacing (?-mix:^protected-mode yes) with protected-mode no in /etc/redis/redis.conf
I, [2024-11-02T01:44:59.157150 #1]  INFO -- : Replacing # io-threads 4 with io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2024-11-02T01:44:59.157493 #1]  INFO -- : > echo redis installed
I, [2024-11-02T01:44:59.158307 #1]  INFO -- : redis installed

I, [2024-11-02T01:44:59.158379 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2024-11-02T01:44:59.159827 #1]  INFO -- : logfile ""

I, [2024-11-02T01:44:59.159884 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-11-02T01:44:59.160479 #1]  INFO -- : > sleep 10
151:C 02 Nov 2024 01:44:59.164 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
151:C 02 Nov 2024 01:44:59.164 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=151, just started
151:C 02 Nov 2024 01:44:59.164 # Configuration loaded
151:M 02 Nov 2024 01:44:59.164 * monotonic clock: POSIX clock_gettime
151:M 02 Nov 2024 01:44:59.164 * Running mode=standalone, port=6379.
151:M 02 Nov 2024 01:44:59.164 # Server initialized
151:M 02 Nov 2024 01:44:59.164 * Loading RDB produced by version 7.0.7
151:M 02 Nov 2024 01:44:59.164 * RDB age 5306 seconds
151:M 02 Nov 2024 01:44:59.164 * RDB memory usage when created 15.44 Mb
151:M 02 Nov 2024 01:44:59.184 * Done loading RDB, keys loaded: 4432, keys expired: 0.
151:M 02 Nov 2024 01:44:59.184 * DB loaded from disk: 0.020 seconds
151:M 02 Nov 2024 01:44:59.184 * Ready to accept connections
I, [2024-11-02T01:45:09.161564 #1]  INFO -- : 
I, [2024-11-02T01:45:09.162064 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2024-11-02T01:45:09.169486 #1]  INFO -- : thpoff is installed!

I, [2024-11-02T01:45:09.170159 #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, [2024-11-02T01:45:09.217931 #1]  INFO -- : 
I, [2024-11-02T01:45:09.217977 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2024-11-02T01:45:09.258998 #1]  INFO -- : 
I, [2024-11-02T01:45:09.259044 #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, [2024-11-02T01:45:09.299487 #1]  INFO -- : 
I, [2024-11-02T01:45:09.299574 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2024-11-02T01:45:09.300769 #1]  INFO -- : 
I, [2024-11-02T01:45:09.301842 #1]  INFO -- : File > /etc/cron.d/anacron  chmod:   chown: 
I, [2024-11-02T01:45:09.303806 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown: 
I, [2024-11-02T01:45:09.305607 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown: 
I, [2024-11-02T01:45:09.307455 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown: 
I, [2024-11-02T01:45:09.309203 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown: 
I, [2024-11-02T01:45:09.310924 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown: 
I, [2024-11-02T01:45:09.311007 #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, [2024-11-02T01:45:09.313238 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
Updating files: 100% (34680/34680), done.
I, [2024-11-02T01:45:11.364546 #1]  INFO -- : HEAD is now at 274e18622 FIX: Video uploads sometimes hang indefinitely (#28523)

I, [2024-11-02T01:45:11.364756 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2024-11-02T01:45:11.441460 #1]  INFO -- : 
I, [2024-11-02T01:45:11.441520 #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-a-gjs-ace
 - [deleted]             (none)     -> origin/better-respect-End-key-in-topics
 - [deleted]             (none)     -> origin/category-experts-approved-webhook-event
 - [deleted]             (none)     -> origin/chat-sound-respects-indicator-pref
 - [deleted]             (none)     -> origin/d-button-noautoclass
 - [deleted]             (none)     -> origin/dependabot/bundler/omniauth-google-oauth2-1.1.2
 - [deleted]             (none)     -> origin/dependabot/bundler/sass-embedded-1.77.8
 - [deleted]             (none)     -> origin/dependabot/bundler/sassc-embedded-1.77.8
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/ember-cli-deprecation-workflow-3.0.2
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/ember/test-helpers-4.0.1
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/eslint-9.7.0
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/sass-1.77.8
 - [deleted]             (none)     -> origin/detect-default-readonly
 - [deleted]             (none)     -> origin/dev/add-skeleton-of-section-landing-page-and-items
 - [deleted]             (none)     -> origin/dev/remove-header-widgets
 - [deleted]             (none)     -> origin/feature/site-text-result-selected-lang
 - [deleted]             (none)     -> origin/fix/add-user-to-user-directory-when-activated
 - [deleted]             (none)     -> origin/issue/fix-bookmark-clearing-reminder
 - [deleted]             (none)     -> origin/loic-drop-compiled-js-column
 - [deleted]             (none)     -> origin/mt/converter
 - [deleted]             (none)     -> origin/mt/uploads-command
 - [deleted]             (none)     -> origin/native-class-components-2
 - [deleted]             (none)     -> origin/native-class-components-3
 - [deleted]             (none)     -> origin/notifications_id_bigint
 - [deleted]             (none)     -> origin/prevent-desktop-notifications-on-mobile
 - [deleted]             (none)     -> origin/tobiaseigen-patch-3
 - [deleted]             (none)     -> origin/tobiaseigen-patch-5
 - [deleted]             (none)     -> origin/update-composer-media-optimization-requirements
 - [deleted]             (none)     -> origin/ux/admin-plugins-ui-guidelines
   274e18622..deeed5b8c  main                    -> origin/main
 * [new branch]          0-a-dl                  -> origin/0-a-dl
 * [new branch]          0-a-more-topics-api     -> origin/0-a-more-topics-api
 * [new branch]          add-live-reload-disable-option -> origin/add-live-reload-disable-option
 * [new branch]          add-outlet-user-card    -> origin/add-outlet-user-card
 * [new branch]          add-shift-detect        -> origin/add-shift-detect
 * [new branch]          add-verbose-logging-for-google-oauth -> origin/add-verbose-logging-for-google-oauth
 * [new branch]          auto-grid-images        -> origin/auto-grid-images
 * [new branch]          chat-uppy-upload        -> origin/chat-uppy-upload
 * [new branch]          chunk-size              -> origin/chunk-size
 * [new branch]          cleanup-mobile-topic-footer-area -> origin/cleanup-mobile-topic-footer-area
 + 7f254be61...4264fe0d6 coco/generic-importer   -> origin/coco/generic-importer  (forced update)
 * [new branch]          dependabot/bundler/activejob-7.1.5 -> origin/dependabot/bundler/activejob-7.1.5
 * [new branch]          dependabot/bundler/activemodel-7.1.5 -> origin/dependabot/bundler/activemodel-7.1.5
 * [new branch]          dependabot/bundler/omniauth-google-oauth2-1.2.0 -> origin/dependabot/bundler/omniauth-google-oauth2-1.2.0
 * [new branch]          dependabot/bundler/rackup-1.0.1 -> origin/dependabot/bundler/rackup-1.0.1
 * [new branch]          dependabot/bundler/rails-81d7e7502c -> origin/dependabot/bundler/rails-81d7e7502c
 * [new branch]          dependabot/bundler/sass-embedded-1.80.5 -> origin/dependabot/bundler/sass-embedded-1.80.5
 * [new branch]          dependabot/bundler/sassc-embedded-1.80.1 -> origin/dependabot/bundler/sassc-embedded-1.80.1
 * [new branch]          dependabot/npm_and_yarn/glimmer/component-2.0.0 -> origin/dependabot/npm_and_yarn/glimmer/component-2.0.0
 * [new branch]          dependabot/npm_and_yarn/jsuites-5.7.0 -> origin/dependabot/npm_and_yarn/jsuites-5.7.0
 * [new branch]          dependabot/npm_and_yarn/sass-1.80.5 -> origin/dependabot/npm_and_yarn/sass-1.80.5
 * [new branch]          dependabot/npm_and_yarn/webpack-5.96.1 -> origin/dependabot/npm_and_yarn/webpack-5.96.1
 * [new branch]          deprecate-template-overrides -> origin/deprecate-template-overrides
 * [new branch]          dev-faster-tests        -> origin/dev-faster-tests
 * [new branch]          dev-fix-chat-types      -> origin/dev-fix-chat-types
 * [new branch]          dev-nginx-conf          -> origin/dev-nginx-conf
 * [new branch]          dev/automation-scriptable-add-with-class -> origin/dev/automation-scriptable-add-with-class
 * [new branch]          dev/convert-theme-install-modal-gjs -> origin/dev/convert-theme-install-modal-gjs
 * [new branch]          dev/glimmer-post-menu   -> origin/dev/glimmer-post-menu
 * [new branch]          dev/port-outlet-wrapper-to-stable -> origin/dev/port-outlet-wrapper-to-stable
 * [new branch]          dev/remap-enhancements  -> origin/dev/remap-enhancements
 * [new branch]          dev/remove-admin-flag-translations -> origin/dev/remove-admin-flag-translations
 * [new branch]          dev/remove-deprecated-respect-plugin-positional-argument -> origin/dev/remove-deprecated-respect-plugin-positional-argument
 * [new branch]          dev/use-new-filestore-download-method -> origin/dev/use-new-filestore-download-method
 + 59bf25001...86f856e04 devcontainer            -> origin/devcontainer  (forced update)
 * [new branch]          drawer-composer-positioning -> origin/drawer-composer-positioning
 * [new branch]          ember-native-class      -> origin/ember-native-class
 * [new branch]          events-ui               -> origin/events-ui
 * [new branch]          feature-searchable-fields-link -> origin/feature-searchable-fields-link
 * [new branch]          feature/add-user-to-topic_tags_changed-event -> origin/feature/add-user-to-topic_tags_changed-event
 + a0042745d...0093ed7e3 feature/bulk-dismiss-buttons-confirmation -> origin/feature/bulk-dismiss-buttons-confirmation  (forced update)
 * [new branch]          feature/custom-fields-for-existing-users -> origin/feature/custom-fields-for-existing-users
 * [new branch]          fix-safari-below-18-detection -> origin/fix-safari-below-18-detection
 * [new branch]          glint                   -> origin/glint
 * [new branch]          issue/fix-plugin-actions-outlet -> origin/issue/fix-plugin-actions-outlet
 * [new branch]          loic-experiment-model-value-type -> origin/loic-experiment-model-value-type
 * [new branch]          loic-fix-post-revision-serializer -> origin/loic-fix-post-revision-serializer
 + 26e2ddbde...653ec4e50 loic-rails-7.2          -> origin/loic-rails-7.2  (forced update)
 * [new branch]          loic-refactor-create-thread-service -> origin/loic-refactor-create-thread-service
 * [new branch]          mt/idb                  -> origin/mt/idb
 * [new branch]          perf-chat-auto-join-take-42 -> origin/perf-chat-auto-join-take-42
 * [new branch]          post-badge-poc          -> origin/post-badge-poc
 * [new branch]          refactor_deditor_textarea -> origin/refactor_deditor_textarea
 * [new branch]          render-glimmer-granular -> origin/render-glimmer-granular
 * [new branch]          revert-28587-revert-28321-dev/remove-create_post_for_category_and_tag_changes-setting -> origin/revert-28587-revert-28321-dev/remove-create_post_for_category_and_tag_changes-setting
 * [new branch]          safari-hacks-sayonara   -> origin/safari-hacks-sayonara
 * [new branch]          sidebar-a11y-viewport-zoom -> origin/sidebar-a11y-viewport-zoom
   d3ad2ecda..1da4243cc  stable                  -> origin/stable
 * [new branch]          tag-name-transformer    -> origin/tag-name-transformer
 * [new branch]          testing_debian_12       -> origin/testing_debian_12
   274e18622..deeed5b8c  tests-passed            -> origin/tests-passed
 * [new branch]          virtual-keyboard-fix-login -> origin/virtual-keyboard-fix-login
 * [new branch]          whats-new-notify-plugins -> origin/whats-new-notify-plugins
 t [tag update]          beta                    -> beta
 t [tag update]          latest-release          -> latest-release
 * [new tag]             v3.3.1                  -> v3.3.1
 * [new tag]             v3.3.2                  -> v3.3.2
 * [new tag]             v3.4.0.beta1            -> v3.4.0.beta1
 * [new tag]             v3.4.0.beta2            -> v3.4.0.beta2
I, [2024-11-02T01:45:11.905583 #1]  INFO -- : 
I, [2024-11-02T01:45:11.905644 #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, [2024-11-02T01:45:14.469334 #1]  INFO -- : branch 'tests-passed' set up to track 'origin/tests-passed'.

I, [2024-11-02T01:45:14.469386 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version tests-passed
I, [2024-11-02T01:45:14.493302 #1]  INFO -- : 
I, [2024-11-02T01:45:14.493361 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2024-11-02T01:45:14.495021 #1]  INFO -- : 
I, [2024-11-02T01:45:14.495051 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2024-11-02T01:45:14.496347 #1]  INFO -- : 
I, [2024-11-02T01:45:14.496374 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2024-11-02T01:45:14.497688 #1]  INFO -- : 
I, [2024-11-02T01:45:14.497722 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2024-11-02T01:45:14.499000 #1]  INFO -- : 
I, [2024-11-02T01:45:14.499046 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2024-11-02T01:45:14.500340 #1]  INFO -- : 
I, [2024-11-02T01:45:14.500394 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2024-11-02T01:45:14.501795 #1]  INFO -- : 
I, [2024-11-02T01:45:14.501830 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2024-11-02T01:45:14.503581 #1]  INFO -- : 
I, [2024-11-02T01:45:14.503645 #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, [2024-11-02T01:45:14.505356 #1]  INFO -- : 
I, [2024-11-02T01:45:14.505407 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2024-11-02T01:45:14.507140 #1]  INFO -- : 
I, [2024-11-02T01:45:14.507171 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2024-11-02T01:45:14.508805 #1]  INFO -- : 
I, [2024-11-02T01:45:14.508834 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2024-11-02T01:45:14.510535 #1]  INFO -- : 
I, [2024-11-02T01:45:14.510564 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2024-11-02T01:45:14.512167 #1]  INFO -- : 
I, [2024-11-02T01:45:14.512192 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2024-11-02T01:45:14.525397 #1]  INFO -- : 
I, [2024-11-02T01:45:14.525458 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2024-11-02T01:45:14.526543 #1]  INFO -- : 
I, [2024-11-02T01:45:14.526605 #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, [2024-11-02T01:45:14.527049 #1]  INFO -- : > cd /var/www/discourse/plugins && mkdir -p plugins
I, [2024-11-02T01:45:14.528359 #1]  INFO -- : 
I, [2024-11-02T01:45:14.528402 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2024-11-02T01:45:15.116533 #1]  INFO -- : 
I, [2024-11-02T01:45:15.116669 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-reactions
Cloning into 'discourse-reactions'...
I, [2024-11-02T01:45:15.612542 #1]  INFO -- : 
I, [2024-11-02T01:45:15.612646 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-bbcode
Cloning into 'discourse-bbcode'...
I, [2024-11-02T01:45:15.885350 #1]  INFO -- : 
I, [2024-11-02T01:45:15.885442 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-saml
Cloning into 'discourse-saml'...
I, [2024-11-02T01:45:16.121383 #1]  INFO -- : 
I, [2024-11-02T01:45:16.121446 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-yearly-review
Cloning into 'discourse-yearly-review'...
I, [2024-11-02T01:45:16.396790 #1]  INFO -- : 
I, [2024-11-02T01:45:16.396864 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-calendar
Cloning into 'discourse-calendar'...
I, [2024-11-02T01:45:17.104029 #1]  INFO -- : 
I, [2024-11-02T01:45:17.104092 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-whos-online
Cloning into 'discourse-whos-online'...
I, [2024-11-02T01:45:17.376311 #1]  INFO -- : 
I, [2024-11-02T01:45:17.376369 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-oauth2-basic
Cloning into 'discourse-oauth2-basic'...
I, [2024-11-02T01:45:17.634119 #1]  INFO -- : 
I, [2024-11-02T01:45:17.634179 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-activity-pub
Cloning into 'discourse-activity-pub'...
I, [2024-11-02T01:45:18.135201 #1]  INFO -- : 
I, [2024-11-02T01:45:18.135264 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-chat-integration
Cloning into 'discourse-chat-integration'...
I, [2024-11-02T01:45:18.547366 #1]  INFO -- : 
I, [2024-11-02T01:45:18.547520 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2024-11-02T01:45:18.548862 #1]  INFO -- : 
I, [2024-11-02T01:45:18.548924 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2024-11-02T01:45:18.549768 #1]  INFO -- : 
I, [2024-11-02T01:45:18.549811 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2024-11-02T01:45:18.550730 #1]  INFO -- : 
I, [2024-11-02T01:45:18.550812 #1]  INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2024-11-02T01:45:18.550997 #1]  INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2024-11-02T01:45:18.551180 #1]  INFO -- : Replacing (?-mix:server_name.+$) with server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2024-11-02T01:45:18.551321 #1]  INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2024-11-02T01:45:18.551461 #1]  INFO -- : Replacing (?-mix:worker_connections.+$) with worker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2024-11-02T01:45:18.551585 #1]  INFO -- : > echo "done configuring web"
I, [2024-11-02T01:45:18.552334 #1]  INFO -- : done configuring web

Ocorreu um erro na minha atualização

```ruby
api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

Por favor, ajudem-me a corrigi-lo.Houve um erro na minha atualização

api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

Por favor, ajudem-me a corrigi-lo.

Log de erro

372
c:0014 p:0143 s:0102 e:000101 METHOD /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:269
c:0013 p:0050 s:0087 e:000086 METHOD /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:157
c:0012 p:0028 s:0076 e:000075 METHOD /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:81
c:0011 p:0026 s:0065 e:000064 METHOD /var/www/discourse/lib/tasks/themes.rake:67
c:0010 p:0006 s:0059 e:000058 BLOCK /var/www/discourse/lib/tasks/themes.rake:118
c:0009 p:0039 s:0056 e:000055 METHOD /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:207
c:0008 p:0017 s:0048 e:000047 METHOD /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21
c:0007 p:0007 s:0039 e:000038 BLOCK /var/www/discourse/lib/tasks/themes.rake:118
c:0006 p:0030 s:0035 e:000034 METHOD /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:650
c:0005 p:0014 s:0025 e:000024 BLOCK /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:441
c:0004 p:0012 s:0022 e:000021 METHOD /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:660
c:0003 p:0032 s:0014 e:000013 BLOCK /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:440
c:0002 p:0004 s:0006 e:000005 BLOCK /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:219 [FINISH]
c:0001 p:---- s:0003 e:000002 DUMMY [FINISH]

– Informações de rastreamento de nível Ruby ----------------------------------------
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:219:in block (4 levels) in in_threads' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:440:in block in work_in_threads’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:660:in with_instrumentation' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:441:in block (2 levels) in work_in_threads’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/lib/parallel.rb:650:in call_with_index' /var/www/discourse/lib/tasks/themes.rake:118:in block (2 levels) in ’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in with_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:207:in with_connection’
/var/www/discourse/lib/tasks/themes.rake:118:in block (3 levels) in <main>' /var/www/discourse/lib/tasks/themes.rake:67:in update_themes’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:81:in find_each' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:157:in find_in_batches’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:269:in in_batches' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:372:in batch_on_unloaded_relation’
internal:kernel:187:in loop' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:396:in block in batch_on_unloaded_relation’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:158:in block in find_in_batches' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:82:in block in find_each’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/relation/batches.rb:82:in each' /var/www/discourse/lib/tasks/themes.rake:69:in block in update_themes’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/transactions.rb:301:in transaction' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/transactions.rb:212:in transaction’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/connection_adapters/abstract/database_statements.rb:344:in transaction' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/connection_adapters/abstract/transaction.rb:532:in within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/concurrency/null_lock.rb:9:in synchronize' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/connection_adapters/abstract/transaction.rb:535:in block in within_new_transaction’
/var/www/discourse/lib/tasks/themes.rake:89:in block (2 levels) in update_themes' /var/www/discourse/app/models/remote_theme.rb:439:in update_from_remote’
/var/www/discourse/app/models/remote_theme.rb:430:in block in update_from_remote' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/suppressor.rb:56:in save!’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/transactions.rb:313:in save!' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/transactions.rb:361:in with_transaction_returning_status’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/connection_adapters/abstract/database_statements.rb:342:in transaction' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/transactions.rb:365:in block in with_transaction_returning_status’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/transactions.rb:313:in block in save!' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/validations.rb:55:in save!’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/persistence.rb:751:in save!' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/timestamp.rb:127:in create_or_update’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/callbacks.rb:441:in create_or_update' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/callbacks.rb:952:in _run_save_callbacks’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/callbacks.rb:141:in run_callbacks' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/callbacks.rb:135:in block in run_callbacks’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/callbacks.rb:602:in invoke_after' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/callbacks.rb:602:in each’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/callbacks.rb:602:in block in invoke_after' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/callbacks.rb:239:in block in halting_and_conditional’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/callbacks.rb:448:in block in make_lambda' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4.2/lib/active_support/callbacks.rb:448:in instance_exec’
/var/www/discourse/app/models/theme.rb:132:in block in <class:Theme>' /var/www/discourse/app/models/theme.rb:176:in update_javascript_cache!’
/var/www/discourse/lib/theme_javascript_compiler.rb:172:in append_tree' /var/www/discourse/lib/theme_javascript_compiler.rb:172:in each_pair’
/var/www/discourse/lib/theme_javascript_compiler.rb:176:in block in append_tree' /var/www/discourse/lib/theme_javascript_compiler.rb:247:in append_module’
/var/www/discourse/lib/discourse_js_processor.rb:151:in perform' /var/www/discourse/lib/discourse_js_processor.rb:126:in v8_call’
/var/www/discourse/lib/discourse_js_processor.rb:126:in synchronize' /var/www/discourse/lib/discourse_js_processor.rb:127:in block in v8_call’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.14.1/lib/mini_racer.rb:249:in call' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.14.1/lib/mini_racer.rb:249:in synchronize’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.14.1/lib/mini_racer.rb:250:in block in call' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.14.1/lib/mini_racer.rb:378:in timeout’
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.14.1/lib/mini_racer.rb:251:in block (2 levels) in call' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.14.1/lib/mini_racer.rb:251:in call_unsafe’

– Informações de threading ---------------------------------------------------
Total de ractors: 1
Contagem de threads Ruby para este ractor: 13

– Contexto de registrador de máquina ------------------------------------------------
RIP: 0x000016815713b540 RBP: 0x00007cecb50ea698 RSP: 0x00007cecb50ea678
RAX: 0x000019ae27801789 RBX: 0x0000000000000010 RCX: 0x0000168157544996
RDX: 0x00007cecb50ea660 RDI: 0x000023fff3e31209 RSI: 0x0000241e654c1151
R8: 0x0000000000000042 R9: 0x0000000000000042 R10: 0x0000000000000055
R11: 0x000000000000000b R12: 0x000025c093bc7aa1 R13: 0x00007cec9804ae40
R14: 0x000000000000008b R15: 0x00007cec983c42d0 EFL: 0x0000000000010202

– Informações de rastreamento de nível C -------------------------------------------
2024-11-02 01:47:33.306 UTC [2704] discourse@devsite_discourse LOG: EOF inesperado na conexão do cliente com uma transação aberta
2024-11-02 01:47:33.306 UTC [2754] discourse@discourse LOG: EOF inesperado na conexão do cliente com uma transação aberta
2024-11-02 01:47:33.306 UTC [2703] discourse@zab_discourse LOG: EOF inesperado na conexão do cliente com uma transação aberta
Falha de segmentação (imagem de núcleo gravada)
I, [2024-11-02T01:47:33.307440 #1] INFO – : Atualizando temas com concorrência: 10
[db:default] ‘DiscoTOC’ - verificando…
[db:thirdsite] ‘Kiosk’ - verificando…
[db:secondsite] ‘DiscoTOC’ - verificando…
[db:thirdsite] ‘Kiosk’ - atualizado
[db:thirdsite] ‘Dark-Light Toggle’ - verificando…
[db:secondsite] ‘DiscoTOC’ - atualizando de 67de4bd6 para 062d4c2d
[db:default] ‘DiscoTOC’ - atualizando de 67de4bd6 para 062d4c2d
[db:thirdsite] ‘Dark-Light Toggle’ - atualizando de 7ed31b75 para 8d84b508

151:signal-handler (1730512053) Recebido SIGTERM agendando desligamento…
I, [2024-11-02T01:47:33.307646 #1] INFO – : Terminando processos assíncronos
I, [2024-11-02T01:47:33.307667 #1] INFO – : Enviando INT para HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 39
I, [2024-11-02T01:47:33.307685 #1] INFO – : Enviando TERM para exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 151
2024-11-02 01:47:33.307 UTC [39] LOG: recebido pedido de desligamento rápido
2024-11-02 01:47:33.359 UTC [39] LOG: abortando transações ativas
2024-11-02 01:47:33.361 UTC [39] LOG: worker em segundo plano “logical replication launcher” (PID 54) saiu com código de saída 1
2024-11-02 01:47:33.361 UTC [49] LOG: desligando
151:M 02 Nov 2024 01:47:33.405 # Desligamento solicitado pelo usuário…
151:M 02 Nov 2024 01:47:33.405 * Salvando o snapshot RDB final antes de sair.
151:M 02 Nov 2024 01:47:33.644 * Banco de dados salvo em disco
151:M 02 Nov 2024 01:47:33.644 # Redis está pronto para sair, tchau…
2024-11-02 01:47:33.656 UTC [39] LOG: sistema de banco de dados desligado

FALHOU

Pups::ExecError: cd /var/www/discourse && su discourse -c ‘SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile’ falhou com retorno #<Process::Status: pid 2662 exit 139>
Local da falha: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn’
exec falhou com os parâmetros {“cd”=>“$home”, “tag”=>“precompile”, “hook”=>“assets_precompile”, “cmd”=>[“su discourse -c ‘SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile’”]}
bootstrap falhou com código de saída 139
** FALHA NO BOOTSTRAP ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.
0a1c5d5564356a99382f072a4bfbdbf685d65ccfbae65d160fe12bd3df5d2025

5 Curtiram

Em uma instalação multi-sites recém-instalada, eu não encontrei este bug.
Mas em uma configuração existente há muito tempo, rodando há anos, eu o encontrei. Ai.

Existe alguma maneira de voltar a uma versão funcional? – Reiniciar iniciou o container anterior. Ufa.

Para voltar ao contêiner mais antigo, você deve conseguir executar

./launcher run app

Ainda não tive tempo de investigar mais isso devido à época do ano, mas efetivamente a maneira como lido com a atualização desta instância complicada no momento é fazer o seguinte

cd /var/discourse
mv shared shared.good
./launcher rebuild app
./launcher stop app
mv shared shared.fresh # Eu uso rm -rf aqui..
mv shared.good shared
./launcher start app
./launcher enter app
cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate

# Itere pelos diferentes sites que tenho definidos definindo RAILS_DB
# Se não estiver definido, você reproduz o problema.
cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 RAILS_DB=default bundle exec rake themes:update assets:precompile'
cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 RAILS_DB=thirdsite bundle exec rake themes:update assets:precompile'

Depois de passar por isso, você pode efetivamente fazer um ./launcher rebuild app completamente novo, desde que nenhuma alteração tenha ocorrido, e ele será compilado de ponta a ponta sem problemas, mas isso não é realmente necessário.

Parece que salt= é chamado em uma instância de User onde não deveria:

#<NoMethodError: undefined method `salt=' for an instance of User>

Outros erros nas atualizações de tema:

[default] Falha ao atualizar 'DiscoTOC' (9): undefined method `ThemeModifierSetError' for class ThemeModifierSet
[default] Falha ao atualizar 'discourse-icon' (15): undefined method `ThemeModifierSetError' for class ThemeModifierSet
1 Curtiu

Retomando este assunto, o problema diminuiu e não o estou mais enfrentando regularmente. Presumo que em algum lugar, em uma etapa anterior, um bug foi corrigido e isso impediu que acontecesse. Vou marcá-lo como fechado e, se mais alguém ainda estiver lidando com isso, sinta-se à vontade para reabri-lo.

Editar: parece que não consigo fechar o bug sozinho, então, se alguém que pode fechar bugs vir isso, por favor, considere este problema resolvido.

2 Curtiram

Sim, correções foram feitas, pelo que sei, o Sam ficará feliz em saber!

Obrigado pela atualização.

3 Curtiram