PostgreSQL bloqué lors de la reconstruction

J’ai le même problème… DO Droplet sur Ubuntu 20.04. J’ai essayé de mettre à jour Docker depuis Discourse d’abord, mais j’ai toujours eu un code d’erreur 137. J’ai donc essayé de reconstruire Discourse depuis la ligne de commande et cela s’est bloqué sur La base de données est prête à accepter les connexions. Ctrl+C n’a rien fait, j’ai donc fermé SSH et en ai ouvert un nouveau et j’ai redémarré Discourse et cela fonctionnait toujours mais n’était pas mis à jour. J’ai redémarré le droplet et j’ai essayé de mettre à jour Docker à nouveau depuis Discourse et cette fois, cela a fonctionné ! J’ai donc essayé de reconstruire Discourse à nouveau, mais cela s’est toujours bloqué au même endroit. J’ai de nouveau fermé SSH et en ai ouvert un nouveau et j’ai redémarré Discourse, mais maintenant j’ai l’écran Oops ! Mon site Discourse est donc en panne et la seule façon dont j’ai jamais pu récupérer de l’écran Oops auparavant est de reconstruire l’application, ce que je ne peux pas faire !

Je suis donc perdu car mon expérience avec Discourse et Droplet est très limitée et je ne sais pas quoi faire maintenant. docker_manager est le seul plugin utilisé dans mon app.yml, je ne peux donc que supposer que l’erreur est due au fait que Docker est une version plus récente et qu’il ne s’accorde pas avec ma version de Discourse ? Je ne sais pas. J’ai mis à jour Discourse pour la dernière fois en janvier, donc ce n’est pas si obsolète…

Mon site est donc en panne jusqu’à ce que ce problème soit résolu… À moins que je ne démarre un nouveau Droplet, que je ne réinitialise tout et que je ne restaure la sauvegarde Discourse que j’ai faite ? Est-ce ma seule option à ce stade ? :tired_face:

L’erreur 137 est due à un manque de mémoire. J’essaierais d’ajouter plus de swap. Si vous n’avez que 1 Go de RAM, je la redimensionnerais à 2 Go et j’ajouterais peut-être aussi 3 ou 4 Go de swap.

Vous pourriez essayer un

./launcher start app

Mais je soupçonne que la base de données a migré trop loin pour l’ancien conteneur.

Si vous êtes bloqué et souhaitez une assistance payante, consultez Contact Us - Literate Computing

Edit : Mais voici ce que je ferais :

Bonjour, même erreur ici. La solution de contournement pour le moment consiste à forcer le paramètre de version dans app.yml à v3.3.0. Arch AMD64, Ubuntu 18.04. Étrange qu’une version mineure ait échoué, la mise à jour vers v3.3.0 s’est déroulée sans problème la semaine dernière :neutral_face:

1 « J'aime »

Pour quiconque rencontre ce problème et est à l’aise pour me donner accès à son serveur, veuillez m’envoyer un message privé afin que je puisse déboguer le problème sur un serveur qui présente le problème. J’ai essayé plusieurs méthodes et je ne parviens pas à reproduire ce problème, ce qui rend plus difficile la mise en œuvre d’une solution.

5 « J'aime »

Je ne vois aucun moyen dans mon profil de vous envoyer un message privé…

Vous devez avoir le niveau de confiance 1 pour envoyer des messages

En regardant les statistiques de votre profil, vous y êtes presque déjà.

2 « J'aime »

Pour ceux qui sont bloqués avec ce problème de Discourse en panne, j’ai trouvé que vous pouvez au moins faire fonctionner l’ancienne version du forum en redémarrant la VM, puis en exécutant ./launcher start app. Cette commande ne fonctionnera pas après avoir tenté une reconstruction sans redémarrer votre instance / VM.

Je devrais pouvoir mettre à jour la version d’Ubuntu sur notre VM affectée lundi, donc je tiendrai tout le monde informé du résultat.

1 « J'aime »

Ctrl+c ne fonctionne pas lorsqu’il est bloqué, il faut redémarrer le système.

Cette commande ne fait rien non plus.

**/var/discourse**# ./launcher start app

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

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=techoforum.com -e DISCOURSE_DEVELOPER_EMAILS=techoforumd@gmail.com -e DISCOURSE_SMTP_ADDRESS=smtp.sendgrid.net -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=apikey -e DISCOURSE_SMTP_PASSWORD=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 -e DISCOURSE_SMTP_DOMAIN=gmail.com -e DISCOURSE_NOTIFICATION_EMAIL=techoforumd@gmail.com -e LETSENCRYPT_ACCOUNT_EMAIL=me@example.com -h discourseonubuntu2004-s-1vcpu-1gb-sfo3-01-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:f8:99:7d:c3:d6 local_discourse/app /sbin/boot

Unable to find image 'local_discourse/app:latest' locally

docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

See 'docker run --help'.

J’ai un autre forum sur une autre gouttelette et cela ne pose aucun problème de mise à jour. C’est étrange pourquoi avec la même configuration de serveur, une gouttelette a des problèmes alors qu’une autre n’en a pas ?

Cela ressemble à un problème de RAM. Quelle quantité de RAM et de swap avez-vous ? J’ajouterais un ou deux Go d’espace SWAP (et peut-être ajouter de la RAM si vous n’avez que 1 Go)

Quelle quantité de RAM et de swap avez-vous sur ces systèmes ? Quel est le résultat de

free -h

Et la RAM expliquerait pourquoi @tgxworld n’a pas pu le reproduire.

Je suis à peu près certain que le problème vient de la RAM/swap.

Au fait, pour tous ceux qui rencontrent ce problème, vous pouvez le contourner pour l’instant en ajoutant base_image: discourse/base:2.0.20240708-0023 en haut du fichier containers/app.yml.

5 « J'aime »

Je ne pense pas que ce soit un problème de RAM dans mon cas car la VM affectée dispose de 125 Gio alloués et de 78 Gio disponibles.

              total        used        free      shared  buff/cache   available
Mem:           125G         14G        940M         31G        110G         78G
Swap:            0B          0B          0B

Le serveur de développement avec le même système d’exploitation qui a réussi la mise à niveau sans ce problème n’a que 16 Gio de RAM.

1 « J'aime »

Zut. Ça allait tout expliquer. :person_shrugging:

1 « J'aime »

Cela pourrait-il être un problème de taille de base de données ?

La base de données sur notre serveur de production est assez volumineuse, mais celle de développement est très petite. C’est la seule réelle différence entre les VM qui ont été mises à niveau avec succès et celle affectée (dans mon cas).

Peut-être, avez-vous modifié la configuration de la mémoire pour la base de données ?

Quelle est la taille de la base de données ?

1 « J'aime »

Je vais vérifier et voir si cela a été modifié

C’est la seule chose qui a fonctionné pour moi. Merci de partager cela !! Mes clients vous remercient aussi :slight_smile:

J’espère que nous aurons bientôt un correctif approprié pour cela.

1 « J'aime »

Bonjour,
Je viens d’agrandir mon Droplet en doublant la RAM et en augmentant la taille du disque. Je rencontre toujours le même problème.
Y a-t-il autre chose à essayer ?

# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       289Mi        83Mi        11Mi       1.6Gi       1.5Gi
Swap:         2.0Gi       3.0Mi       2.0Gi

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            941M     0  941M   0% /dev
tmpfs           198M  1.1M  197M   1% /run
/dev/vda1        34G   14G   21G  39% /
tmpfs           986M     0  986M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           986M     0  986M   0% /sys/fs/cgroup
/dev/vda15      105M  7.4M   97M   8% /boot/efi
/dev/loop1       56M   56M     0 100% /snap/core18/2829
/dev/loop2       56M   56M     0 100% /snap/core18/2823
/dev/loop3       92M   92M     0 100% /snap/lxd/29619
/dev/loop0       64M   64M     0 100% /snap/core20/2264
/dev/loop4       64M   64M     0 100% /snap/core20/2318
/dev/loop5       39M   39M     0 100% /snap/snapd/21465
/dev/loop6       92M   92M     0 100% /snap/lxd/24061
/dev/loop7       39M   39M     0 100% /snap/snapd/21759
tmpfs           198M     0  198M   0% /run/user/0
overlay          34G   14G   21G  39% /var/lib/docker/overlay2/3c7ebf42647de2b5df34cba2b047079fd3454ea7fe9b04c7b70f227df1e7eafe/merged
1 « J'aime »

OMG ! Pourquoi n’ai-je pas lu cette solution auparavant. Cela a également fonctionné pour moi.
Alors quelle est la solution pour l’avenir ? Devons-nous continuer à spécifier cette image de base à l’avenir ou la modifier pour obtenir une image mise à jour ?