Échec du téléchargement de la base de données maxmind avec une clé valide et possibilité de télécharger la base de données depuis l'intérieur du conteneur

La compilation a échoué à cause de cela. J’ai supprimé la variable d’environnement et j’ai reconstruit sans elle. Ensuite, je suis passé au débogage à l’intérieur du conteneur. où j’ai ajouté la clé à discourse.conf, cela échoue toujours.

(Heureusement, j’ai fait cela avant de dire au client qu’il m’avait donné une clé invalide !)

J’ai ajouté un puts à la tâche rake pour imprimer l’URL à partir de laquelle il essaie de télécharger la base de données comme ceci :

    url =
      "https://download.maxmind.com/app/geoip_download?license_key=#{GlobalSetting.maxmind_license_key}&edition_id=#{name}&suffix=tar.gz"

    gz_file =
      FileHelper.download(
        url,
        max_file_size: 100.megabytes,
        tmp_file_name: "#{name}.gz",
        validate_uri: false,
        follow_redirect: false,
      )

    if gz_file.nil?
      puts "no gzfile"
    end
    puts "Got file #{gz_file} for #{url}"
    filename = File.basename(gz_file.path)

Maintenant, j’obtiens ceci :

root@web-only:/var/www/discourse# rake maxminddb:get
Plugin name is 'discourse-topic-voting', but plugin directory is named 'discourse-voting'
Downloading MaxMindDb's GeoLite2-City...
no gzfile
Got file  for https://download.maxmind.com/app/geoip_download?license_key=VALID_KEY_IS_HERE&edition_id=GeoLite2-City&suffix=tar.gz
rake aborted!
NoMethodError: undefined method `path' for nil:NilClass (NoMethodError)

    filename = File.basename(gz_file.path)
                                    ^^^^^
/var/www/discourse/lib/discourse_ip_info.rb:52:in `mmdb_download'
/var/www/discourse/lib/tasks/maxminddb.rake:9:in `block (2 levels) in <main>'
/var/www/discourse/lib/tasks/maxminddb.rake:7:in `each'
/var/www/discourse/lib/tasks/maxminddb.rake:7:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => maxminddb:get
(See full trace by running task with --trace)

Il y avait un autre sujet où le problème était que le site était bloqué par Maxmind, j’ai donc essayé, et téléchargé avec succès cette URL avec wget depuis l’intérieur du conteneur sur le serveur en question.

Il me semble que FileHelper.download n’est pas vraiment une Helper après tout et retourne silencieusement nil au lieu d’un fichier. Le fichier ne fait que 44 Mo, donc ce n’est pas ça. Lorsque je vérifie les en-têtes complets avec wget, je ne vois aucune redirection.

Des idées sur ce qui pourrait se passer ?

Y a-t-il une raison de ne pas attraper cette erreur et de laisser une compilation se terminer avec une clé invalide ? Peut-être juste imprimer un avertissement ?

1 « J'aime »

Est-ce que cela fonctionne mieux avec follow_redirect: true ?

Suite à un changement récent, MaxMind a modifié son URL de téléchargement, mais vous pouvez conserver l’original tant que vous autorisez la redirection.

2 « J'aime »

Je me demande s’il y a eu un malentendu et si ce n’est pas vraiment le 1er mai que cela commence. :thinking:

2 « J'aime »

OMG. Oui. Je ne sais pas pourquoi je n’ai pas simplement changé cela et pensé que je savais que ça ne redirigeait pas.

4 « J'aime »

Super, c’est fusionné, faites-nous savoir comment ça se passe s’il vous plaît !

3 « J'aime »

Tenté de remettre notre clé maxmind du forum en service, nous recevons toujours l’erreur d’origine lors de la tentative de reconstruction.

1 « J'aime »

Pourriez-vous vérifier si vous utilisez la dernière version de Discourse ? Cela fonctionne pour Jay ; je ne vois aucune raison pour que cela ne fonctionne pas pour vous, surtout si cela suit la recommandation de MaxMind. :thinking:

1 « J'aime »

Je ne suis pas sûr de la façon dont cela ne serait pas le cas lors de la reconstruction de l’application.

Vous avez raison. On ne sait jamais, cependant. :smile: Quelle est la version du hash affichée ? Nous pouvons vérifier rapidement, au moins.

J’ai relu l’annonce de MaxMind, mais je ne vois rien d’autre que le changement d’URL ou l’autorisation des redirections. :thinking:

1 « J'aime »

Exécutez-vous tests-passed ou latest-release ?

Nous sommes sur tests-passed, du moins à ma connaissance.

Quelle est l’URL ou obtenez le commit lorsque vous affichez la source.

Fin des journaux du build planté :

Téléchargement de MaxMindDB...
Compression du Javascript et génération des cartes sources
I, [2024-03-26T13:27:38.305597 #1] INFO -- : Terminating async processes
I, [2024-03-26T13:27:38.307312 #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/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
I, [2024-03-26T13:27:38.307891 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 111
111:signal-handler (1711459658) Received SIGTERM scheduling shutdown...
2024-03-26 13:27:38.307 UTC [42] LOG:  received fast shutdown request
2024-03-26 13:27:38.314 UTC [42] LOG:  aborting any active transactions
2024-03-26 13:27:38.321 UTC [42] LOG:  background worker "logical replication launcher" (PID 51) exited with exit code 1
2024-03-26 13:27:38.322 UTC [46] LOG:  shutting down
111:M 26 Mar 2024 13:27:38.353 # User requested shutdown...
111:M 26 Mar 2024 13:27:38.353 * Saving the final RDB snapshot before exiting.
2024-03-26 13:27:38.415 UTC [42] LOG:  database system is shut down
111:M 26 Mar 2024 13:27:39.896 * DB saved on disk
111:M 26 Mar 2024 13:27:39.896 # Redis is now ready to exit, bye bye...
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #&lt;Process::Status: pid 3889 exit 1&gt;
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
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.
fe4eec7726fdbe08aaa2691e806bb17423a8f4eaedb8414397e3097d725e04c7

Commit : Commits · discourse/discourse · GitHub

En note ultérieure, je n’ai pas lié le site sur lequel cela s’est produit, car l’un des membres du personnel testait un bug du noyau dans un conteneur séparé sur le même serveur, et a planté tout le serveur par erreur, donc lier le site n’aurait servi à rien.

1 « J'aime »

Est-ce que cela se produit toujours @Firepup650 ?

J’avais l’intention de reconstruire un peu, alors j’en lancerai une et je verrai.

1 « J'aime »

Je peux confirmer que le problème ne se produit plus. Notre forum se reconstruit correctement maintenant.

4 « J'aime »

Ce sujet a été automatiquement fermé après 26 heures. Les nouvelles réponses ne sont plus autorisées.