J’espère que quelqu’un pourra m’aider. Je n’ai rencontré aucun problème avec les mises à jour de mon forum, qui tourne dans un conteneur Docker sur EC2, depuis plus de 12 mois.
J’ai essayé :
Nettoyage du launcher, mais aucun problème d’espace disque
Dernier git pull
Plusieurs rebuilds de l’application
Même une réinstallation complète de discourse-setup, et j’allais essayer une restauration de la base de données
Redémarrage du serveur
apt-get update ; apt-get upgrade
Voici la fin du journal :
Terminé la compression de tous les fichiers JS : 88,88 secondes
rake aborted!
SocketError: Échec de l'ouverture de la connexion TCP vers geolite.maxmind.com:443 (getaddrinfo: Aucune adresse associée au nom d'hôte)
/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'
Causé par :
SocketError: getaddrinfo: Aucune adresse associée au nom d'hôte
/var/www/discourse/lib/final_destination.rb:411:in `safe_session'
/var/www/discourse/lib/final_destination.rb:362:in `safe_get'
/var/www/discourse/lib/final_destination.rb:131:in `get'
/var/www/discourse/lib/file_helper.rb:51:in `download'
/var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
/var/www/discourse/lib/tasks/assets.rake:220:in `block (3 levels) in <top (required)>'
/var/www/discourse/lib/tasks/assets.rake:219:in `each'
/var/www/discourse/lib/tasks/assets.rake:219:in `block (2 levels) in <top (required)>'
Tâches : TOP => assets:precompile
(Voir la trace complète en exécutant la tâche avec --trace)
I, [2019-12-30T18:56:27.608998 #1] INFO -- : Téléchargement de MaxMindDB...
Compression de JavaScript et génération des cartes sources
I, [2019-12-30T18:56:27.633923 #1] INFO -- : Arrêt des processus asynchrones
I, [2019-12-30T18:56:27.637383 #1] INFO -- : Envoi de INT à HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid: 49
I, [2019-12-30T18:56:27.639770 #1] INFO -- : Envoi de TERM à exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 166
166:signal-handler (1577732187) SIGTERM reçu, planification de l'arrêt...
2019-12-30 18:56:27.639 UTC [49] LOG : demande d'arrêt rapide reçue
2019-12-30 18:56:27.654 UTC [49] LOG : annulation de toutes les transactions actives
166:M 30 Dec 2019 18:56:27.666 # Arrêt demandé par l'utilisateur...
166:M 30 Dec 2019 18:56:27.694 * Sauvegarde du dernier snapshot RDB avant la fermeture.
2019-12-30 18:56:27.702 UTC [49] LOG : processus worker : lanceur de réplication logique (PID 58) terminé avec le code de sortie 1
2019-12-30 18:56:27.711 UTC [53] LOG : arrêt en cours
2019-12-30 18:56:27.819 UTC [49] LOG : le système de base de données est arrêté
166:M 30 Dec 2019 18:56:27.885 * Base de données sauvegardée sur le disque
166:M 30 Dec 2019 18:56:27.886 # Redis est maintenant prêt à quitter, au revoir...
ÉCHEC
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake assets:precompile' a échoué avec le code de retour #<Process::Status: pid 507 exit 1>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
exec a échoué avec les paramètres {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake assets:precompile'"]}
fcf17d793c27c4e87616420ead222cc3f4a9fc163f239a5542b1c9a092579b30
** ÉCHEC DU BOOTSTRAP ** Veuillez faire défiler vers le haut et rechercher les messages d'erreur antérieurs, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
J’espère vraiment que quelqu’un pourra éclaircir cette situation.
Au cas où quelqu’un souhaiterait continuer à utiliser les derniers fichiers publiés sous l’ancienne licence, je les ai tous sauvegardés sur archive.org.
Nous prenons désormais en charge la méthode officiellement recommandée pour obtenir les bases de données, comme indiqué ici :
Si vous souhaitez recevoir les mises à jour régulières de MaxMind, vous devrez vous rendre sur GeoLite sign up | MaxMind pour créer un compte et générer une clé de licence.
Ensuite, vous devrez modifier votre conteneur pour l’inclure dans la section env :
Cette correction garantit qu’il n’y a plus de « bombe à retardement ». Si aucune clé de licence n’est présente, nous n’essaierons jamais de télécharger les fichiers.
Nous discutons avec MaxMind de la possibilité d’inclure les bases de données mises à jour dans nos nouvelles images de base. Il existe deux alternatives pour les auto-hébergeurs, selon l’issue de ces discussions :
Aucune résolution d’adresse IP sur la page de profil utilisateur et la page d’administration tant qu’une licence n’est pas ajoutée.
Une résolution d’adresse IP obsolète pendant un maximum de N jours après l’obtention de l’image de base (c’est-à-dire après avoir exécuté ./launcher rebuild app).
Il est très probable que l’option (1) soit retenue pour les auto-hébergeurs.
Nous explorons également d’autres alternatives, mais nos options sont assez limitées.
Je suis fermement opposé à l’ajout dans le cœur du système de fonctionnalités effectuant des recherches d’IP via un service web, car cela expose des informations à un tiers. Il n’existe que deux grandes alternatives réelles, et toutes deux nécessitent une inscription.
@sam J’ai une petite demande de fonctionnalité : serait-il possible d’ajouter un paramètre dans le panneau d’administration pour saisir la clé de licence MaxMind ?
Je peux confirmer que nous avons pu créer un compte sans problème. Vous devrez contacter MaxMind pour obtenir de l’aide concernant les problèmes de compte, car nous ne pouvons pas vous aider sur ce sujet ici.
Merci à tous ceux qui ont travaillé sur le correctif rapide au cours des dernières semaines. J’ai dû faire la même chose avec Matomo, ce qui était beaucoup plus pénible (manuel).
Cela m’amène à ma question : Où exactement les données MaxMind sont-elles utilisées ? Uniquement dans les cas où les administrateurs consultent les adresses IP des utilisateurs ? Y a-t-il autre chose à laquelle je ne pense pas ?
J’ai déjà un compte MM, bien sûr, mais je me demande s’il vaut la peine de faire l’effort de le faire avec urgence.
Elle effectue des recherches géographiques sur les adresses IP. J’ai réalisé plusieurs installations et mises à jour récemment sans définir de clé API, et les reconstructions fonctionnent parfaitement. (la version actuelle est la bêta 10)
De plus, il n’est pas très difficile d’obtenir une clé pour télécharger la base de données.
J’espère mettre à jour discourse-setup pour permettre l’ajout de la clé la semaine prochaine.
C’est exact, elles sont utilisées pour la recherche d’adresses IP des utilisateurs par les administrateurs. Elles servent également à la liste des « appareils récemment utilisés » dans les préférences de l’utilisateur, et pour les alertes administrateur lorsqu’une nouvelle connexion est détectée à partir d’un autre emplacement pour leur compte.
Désolé de vous déranger, mais je voulais savoir s’il est prévu de conserver la possibilité de désactiver la recherche d’adresse IP. Il me semble que forcer les administrateurs à souscrire à un service tiers n’est pas une bonne idée. Personnellement, j’ai déjà une clé de licence pour d’autres usages, donc je parle ici de manière générale.
Si vous ne saisissez pas de clé de licence, elle sera désactivée. Rien n’oblige les administrateurs à la configurer.
De plus, pour éviter toute confusion, Discourse n’envoie jamais d’adresses IP à un tiers. Discourse télécharge une base de données complète des localisations d’adresses IP depuis MaxMind, puis effectue la recherche en interne.