Échec du démarrage - problème avec pups

Salut tout le monde -

J’ai récemment essayé de reconstruire notre instance de test après une mise à jour sans succès. Les recherches sur Google/ChatGPT indiquent que quelque chose pourrait ne pas aller avec le formatage de app.yml, mais je n’ai pas réussi à le résoudre. Voici la sortie standard, dont je réalise qu’elle n’est pas très utile :

x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Your version of Launcher is ahead of origin
Stopping old container
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
109:C 13 Jun 2025 15:20:04.997 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
109:C 13 Jun 2025 15:20:04.997 # Redis version=7.0.15, bits=64, commit=00000000, modified=0, pid=109, just started
109:C 13 Jun 2025 15:20:04.997 # Configuration loaded
109:M 13 Jun 2025 15:20:04.997 * monotonic clock: POSIX clock_gettime
109:M 13 Jun 2025 15:20:04.998 * Running mode=standalone, port=6379.
109:M 13 Jun 2025 15:20:04.998 # Server initialized
109:M 13 Jun 2025 15:20:04.999 * Loading RDB produced by version 7.0.7
109:M 13 Jun 2025 15:20:04.999 * RDB age 14 seconds
109:M 13 Jun 2025 15:20:04.999 * RDB memory usage when created 2.95 Mb
109:M 13 Jun 2025 15:20:05.007 * Done loading RDB, keys loaded: 3659, keys expired: 0.
109:M 13 Jun 2025 15:20:05.007 * DB loaded from disk: 0.008 seconds
109:M 13 Jun 2025 15:20:05.007 * Ready to accept connections
3649:C 13 Jun 2025 15:22:52.415 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3649:C 13 Jun 2025 15:22:52.415 # Redis version=7.0.15, bits=64, commit=00000000, modified=0, pid=3649, just started
3649:C 13 Jun 2025 15:22:52.415 # Configuration loaded
3649:M 13 Jun 2025 15:22:52.415 * monotonic clock: POSIX clock_gettime
3649:M 13 Jun 2025 15:22:52.416 # Warning: Could not create server TCP listening socket *:6379: bind: Address already in use
3649:M 13 Jun 2025 15:22:52.416 # Failed listening on port 6379 (TCP), aborting.
109:M 13 Jun 2025 15:25:05.035 * 100 changes in 300 seconds. Saving...
109:M 13 Jun 2025 15:25:05.041 * Background saving started by pid 3823
3823:C 13 Jun 2025 15:25:05.257 * DB saved on disk
3823:C 13 Jun 2025 15:25:05.257 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
109:M 13 Jun 2025 15:25:05.342 * Background saving terminated with success
109:signal-handler (1749828411) Received SIGTERM scheduling shutdown...
109:M 13 Jun 2025 15:26:51.694 # User requested shutdown...
109:M 13 Jun 2025 15:26:51.694 * Saving the final RDB snapshot before exiting.
109:M 13 Jun 2025 15:26:51.710 * DB saved on disk
109:M 13 Jun 2025 15:26:51.710 # Redis is now ready to exit, bye bye...
bootstrap failed with exit code 1
** 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.
5b720b35a25e026d9908c60a2f7c5bcf3725b16a0b282875e8a66ce5ace4d06b

```Je voudrais téléverser le stderr en tant que pièce jointe, mais en tant que nouvel utilisateur, je ne peux pas. Peut-être que ce dernier extrait du journal impliquant pups est suffisant ?

2025-06-13 15:26:51.615 UTC [42] LOG: aborting any active transactions
2025-06-13 15:26:51.634 UTC [42] LOG: background worker “logical replication launcher” (PID 56) exited with exit code 1
2025-06-13 15:26:51.634 UTC [51] LOG: shutting down
2025-06-13 15:26:51.637 UTC [51] LOG: checkpoint starting: shutdown immediate
2025-06-13 15:26:51.646 UTC [51] LOG: checkpoint complete: wrote 15 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.003 s, total=0.012 s; sync files=3, longest=0.003 s, average=0.001 s; distance=49 kB, estimate=243 kB
2025-06-13 15:26:51.659 UTC [42] LOG: database system is shut down
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/config.rb:223:in block (2 levels) in run_commands': Invalid run command filename (SyntaxError) from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/config.rb:211:in each’
from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/config.rb:211:in block in run_commands' from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/config.rb:210:in each’
from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/config.rb:210:in run_commands' from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/config.rb:191:in run’
from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:89:in run' from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/bin/pups:9:in
from /usr/local/bin/pups:25:in load' from /usr/local/bin/pups:25:in


Y a-t-il autre chose que je devrais rechercher qui pourrait éclaircir le problème ? J'apprécie votre aide !

Soit dit en passant, j’ai fait passer le fichier app.yml dans un linter YAML et il n’a rien trouvé. J’ai également essayé de reconstruire sans aucun plugin actif, et cela n’a pas fait de différence.

Je vous suggère de coller tout ou partie de votre fichier YML - veillez à masquer les mots de passe et les jetons d’accès. La sortie

semble effectivement suspecte. Mon propre fichier YML est très simple, sans commandes, mais le vôtre est peut-être compliqué.

2 « J'aime »

Merci @Ed_S. J’ai joint le YML dans l’espoir qu’il y ait un indice là-dedans.

app_yml_redacted.txt (4.7 KB)

Merci. La seule chose que je peux voir, c’est que là où j’ai

templates/web.ratelimited.template.yml

vous avez

templates/web.ratelimited-whitelist.template.yml

Il est possible qu’il y ait une erreur de syntaxe dans ce fichier ? Ce serait, je pense, à

/var/discourse/templates/web.ratelimited-whitelist.template.yml

Bien qu’il puisse y avoir tout autant une erreur de syntaxe dans l’un des autres modèles mentionnés.

1 « J'aime »

J’ai définitivement réduit à ce fichier :

/var/discourse/templates/web.ratelimited-whitelist.template.yml

que je colle ci-dessous.

params:
  reqs_per_second: 12
  burst_per_second: 12
  reqs_per_minute: 200
  burst_per_minute: 100
  conn_per_ip: 20

run:
  - replace:
    filename: "/etc/nginx/conf.d/discourse.conf"
    from: /server.+{/
    to: |
       geo $limit {
           default 1;
           XX.YYY.ZZ.ZZZ 0; # hubprod
           XXX.YY.ZZZ.ZZZ 0; # hubdev
       }

       map $limit $limit_key {
           0 "";
           1 $binary_remote_addr;
       }

       limit_req_zone $limit_key zone=flood:10m rate=$reqs_per_secondr/s;
       limit_req_zone $limit_key zone=bot:10m rate=$reqs_per_minuter/m;
       limit_req_status 429;
       limit_conn_zone $limit_key zone=connperip:10m;
       limit_conn_status 429;
       server {
  - replace:
    filename: "/etc/nginx/conf.d/discourse.conf"
    from: "/location @discourse {/"
    to: |
       location @discourse {
         limit_conn connperip $conn_per_ip;
         limit_req zone=flood burst=$burst_per_second nodelay;
         limit_req zone=bot burst=$burst_per_minute nodelay;

Y a-t-il quelque chose dans la commande run ici qui semble incorrect ?

Votre indentation est juste très légèrement différente de ce à quoi je pourrais m’attendre. Et vous avez une ligne vide à la fin. Mais je ne sais pas si ce sont des indices.

1 « J'aime »

Je pense qu’à votre place, je commencerais par supprimer des sections de ce YML en recherche binaire pour trouver le coupable. Vous avez quelques lignes vides, et vous avez deux sections ‘replace’ que vous pourriez peut-être supprimer une par une. Commencez par supprimer les sections majeures et espérez pouvoir converger vers le problème.

2 « J'aime »

Merci pour votre aide @Ed_S, il s’est avéré que c’était une mauvaise indentation dans le fichier YAML que j’ai mentionné ci-dessus. Je ne sais pas pourquoi les analyseurs n’ont pas détecté le problème, mais la comparaison du fichier problématique avec un fichier en production a immédiatement clarifié le problème.

2 « J'aime »

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