Configurer DISCOURSE_MAXMIND_LICENSE_KEY casse le build de l'image/conteneur Docker

Salut tout le monde,

Lors de l’exécution d’une installation basée sur Docker, et lors de la configuration de DISCOURSE_MAXMIND_LICENSE_KEY, le processus de création de l’image s’interrompt avec cette erreur :

/var/www/discourse/lib/discourse_ip_info.rb:48:in `mmdb_download': undefined method `path' for nil:NilClass (NoMethodError)

    filename = File.basename(gz_file.path)
                                    ^^^^^
        from /var/www/discourse/lib/tasks/maxminddb.rake:67:in `block (3 levels) in <main>'
        from /var/www/discourse/lib/tasks/maxminddb.rake:65:in `each'
        from /var/www/discourse/lib/tasks/maxminddb.rake:65:in `block (2 levels) in <main>'

Lorsque DISCOURSE_MAXMIND_LICENSE_KEY est laissé vide, tout fonctionne correctement.
Testé avec les versions : stable et tests-passed.

La licence Maxmind fonctionne – les deux URL donnent accès aux fichiers .mmdb :

Juste une supposition (je ne suis pas un expert en Ruby ; soyez donc indulgent) – peut-être que l’extension ‘.mmdb’ pose problème dans FileHelper.download(...) quelques lignes plus bas :

L’ajout de “.mmdb” aux liens ci-dessus provoque une erreur Invalid edition ID.

J’espère que cela aidera à cerner le problème.

1 « J'aime »

Bonjour et bienvenue @cbreit :slight_smile:

Je pense que nous avons eu quelques signalements de plantages de reconstructions suite à un problème de clé Maxmind :

Ce sont peut-être les informations supplémentaires dont nous avons besoin pour comprendre ce qui se passe. :+1: Merci pour vos recherches. :slight_smile:

Êtes-vous sûr que votre clé de licence est valide et correctement saisie ?

1 « J'aime »

De rien.
Faites-moi savoir si je dois essayer quelque chose ou si vous avez besoin d’informations supplémentaires. :slightly_smiling_face:

La clé id est définitivement valide.
Et elle est également entrée correctement car tout est entièrement automatisé via Ansible.

La même clé fonctionne à d’autres endroits du playbook à merveille (et il n’y a pas non plus de problèmes de limitation de débit).

On dirait que l’URL ne fonctionne tout simplement pas.

1 « J'aime »

Puisque j’ai eu le même problème et que je peux confirmer que lorsque je supprime la clé de licence, mes problèmes de reconstruction disparaissent comme par magie.

J’ai même, sur plusieurs jours, fait de mon mieux pour creuser le problème.

Je pense que j’ai raison, mais je pourrais aussi avoir tort.

Pendant la construction, il semble que les fichiers mmdb soient manquants, peut-être parce qu’ils ne sont pas présents dans l’image de base, ou plus probablement, parce qu’ils sont supprimés et/ou même pas téléchargés avant d’être chargés, d’où l’échec de la construction.

À bien y penser, l’appel à mmdb_download pointe vers du code qui essaie de télécharger le fichier.

J’ai réussi à télécharger les fichiers manuellement (depuis le conteneur Docker) avec wget, donc la licence fonctionne comme prévu.

1 « J'aime »

Pour faire remonter ce sujet, il s’agit toujours d’un problème, je viens d’avoir exactement la même chose en ajoutant la clé et en décommentant le paramètre dans app.yml.

1 « J'aime »

J’ai reçu cet avis lors de la mise à jour depuis la branche principale aujourd’hui :

Téléchargement de MaxMindDB... Les mises à jour de la base de données d'adresses IP MaxMind nécessitent une licence. Veuillez définir DISCOURSE_MAXMIND_LICENSE_KEY sur celle que vous avez générée sur https://www.maxmind.com. Les mises à jour de la base de données d'adresses IP MaxMind nécessitent une licence. Veuillez définir DISCOURSE_MAXMIND_LICENSE_KEY sur celle que vous avez générée sur https://www.maxmind.com.

Mais je n’ai jamais configuré de clé de licence pour cela, et je ne sais pas comment les intégrer de toute façon.

La mise à jour s’est quand même terminée, donc cela ne semble pas causer de problème, mais il s’agit peut-être d’une sorte d’erreur mineure.

Je pense que c’est attendu sans clé maxmind ?

2 « J'aime »

Nous rencontrons le même problème. L’ajout de DISCOURSE_MAXMIND_ACCOUNT_ID à l’environnement a résolu ce problème pour moi.

Biffez cela, j’ai d’abord supposé que le conteneur avait été construit avec succès, mais ce n’était pas le cas.

  1. Joyeux gâteau !
  2. D’après ce que je sais, ce problème a été résolu. (Pour couvrir toutes les bases) votre clé et votre ID de compte sont corrects, n’est-ce pas ?

Avez-vous récemment reconstruit ? Quelle erreur avez-vous ?

1 « J'aime »

Oui, c’était aujourd’hui. L’erreur que l’OP a publiée.

Pouvez-vous publier l’erreur exacte que vous rencontrez ? Une modification connexe a été fusionnée au cours des dernières 24 heures, je soupçonne donc que vous pourriez avoir un problème légèrement différent de celui de l’OP (si vous êtes sur tests-passed) :

2 « J'aime »

Continuant la conversion depuis ici.

J’ai mis à jour app.yml pour inclure l’ID du compte.

Maintenant, je vois une erreur lors de la reconstruction (tests-passed) :

****************************************************************************************************
MaxMindDB (GeoLite2-City) n'a pas pu être téléchargé : Erreur 400
****************************************************************************************************
Message

MaxMindDB (GeoLite2-City) n'a pas pu être téléchargé : Erreur 400

Backtrace

/var/www/discourse/lib/tasks/maxminddb.rake:83:in `rescue in block (2 levels) in <main>'
/var/www/discourse/lib/tasks/maxminddb.rake:70:in `block (2 levels) in <main>'

Des idées sur ce que cela pourrait être ?

Also seeing these in the logs

Message

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb

Backtrace

/var/www/discourse/lib/discourse_ip_info.rb:88:in `rescue in mmdb_load'
/var/www/discourse/lib/discourse_ip_info.rb:84:in `mmdb_load'
/var/www/discourse/lib/discourse_ip_info.rb:14:in `open_db'
/var/www/discourse/lib/discourse_ip_info.rb:10:in `initialize'
/usr/local/lib/ruby/3.2.0/singleton.rb:127:in `new'
/usr/local/lib/ruby/3.2.0/singleton.rb:127:in `block in instance'
/usr/local/lib/ruby/3.2.0/singleton.rb:125:in `synchronize'
/usr/local/lib/ruby/3.2.0/singleton.rb:125:in `instance'
/var/www/discourse/lib/discourse_ip_info.rb:175:in `get'
/var/www/discourse/app/serializers/concerns/user_auth_tokens_mixin.rb:13:in `location'
(eval):5:in `_fast_attributes'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:89:in `block in _serializable_array'
activerecord-7.0.8.1/lib/active_record/relation/delegation.rb:88:in `each'
activerecord-7.0.8.1/lib/active_record/relation/delegation.rb:88:in `each'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:79:in `map'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:79:in `_serializable_array'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:73:in `serializable_array'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:53:in `as_json'
activesupport-7.0.8.1/lib/active_support/json/encoding.rb:22:in `encode'
activesupport-7.0.8.1/lib/active_support/json/encoding.rb:22:in `encode'
activesupport-7.0.8.1/lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:331:in `to_json'
multi_json-1.15.0/lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json-1.15.0/lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json-1.15.0/lib/multi_json/adapter.rb:25:in `dump'
multi_json-1.15.0/lib/multi_json.rb:139:in `dump'
/var/www/discourse/app/controllers/application_controller.rb:554:in `render_json_dump'
/var/www/discourse/app/controllers/users_controller.rb:156:in `block (2 levels) in show'
actionpack-7.0.8.1/lib/action_controller/metal/mime_responds.rb:214:in `respond_to'
/var/www/discourse/app/controllers/users_controller.rb:149:in `show'
actionpack-7.0.8.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-7.0.8.1/lib/abstract_controller/base.rb:215:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
i18n-1.14.5/lib/i18n.rb:351:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:423:in `with_resolved_locale'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `block in instrument'
activesupport-7.0.8.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `instrument'
actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord-7.0.8.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack-7.0.8.1/lib/abstract_controller/base.rb:151:in `process'
actionview-7.0.8.1/lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler-3.3.1/lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack-7.0.8.1/lib/action_controller/metal.rb:188:in `dispatch'
actionpack-7.0.8.1/lib/action_controller/metal.rb:251:in `dispatch'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:852:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack-2.2.9/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.9/lib/rack/conditional_get.rb:27:in `call'
rack-2.2.9/lib/rack/head.rb:12:in `call'
actionpack-7.0.8.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:393:in `call'
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'
rack-2.2.9/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.9/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster-2.19.1/lib/logster/middleware/reporter.rb:40:in `call'
railties-7.0.8.1/lib/rails/rack/logger.rb:40:in `call_app'
railties-7.0.8.1/lib/rails/rack/logger.rb:27:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/request_id.rb:26:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'
rack-2.2.9/lib/rack/method_override.rb:24:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
rack-2.2.9/lib/rack/sendfile.rb:110:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler-3.3.1/lib/mini_profiler.rb:191:in `call'
message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:277:in `call'
railties-7.0.8.1/lib/rails/engine.rb:530:in `call'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `method_missing'
rack-2.2.9/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.9/lib/rack/urlmap.rb:58:in `each'
rack-2.2.9/lib/rack/urlmap.rb:58:in `call'
unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'
Message

MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb

Backtrace

/var/www/discourse/lib/discourse_ip_info.rb:88:in `rescue in mmdb_load'
/var/www/discourse/lib/discourse_ip_info.rb:84:in `mmdb_load'
/var/www/discourse/lib/discourse_ip_info.rb:15:in `open_db'
/var/www/discourse/lib/discourse_ip_info.rb:10:in `initialize'
/usr/local/lib/ruby/3.2.0/singleton.rb:127:in `new'
/usr/local/lib/ruby/3.2.0/singleton.rb:127:in `block in instance'
/usr/local/lib/ruby/3.2.0/singleton.rb:125:in `synchronize'
/usr/local/lib/ruby/3.2.0/singleton.rb:125:in `instance'
/var/www/discourse/lib/discourse_ip_info.rb:175:in `get'
/var/www/discourse/app/serializers/concerns/user_auth_tokens_mixin.rb:13:in `location'
(eval):5:in `_fast_attributes'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:89:in `block in _serializable_array'
activerecord-7.0.8.1/lib/active_record/relation/delegation.rb:88:in `each'
activerecord-7.0.8.1/lib/active_record/relation/delegation.rb:88:in `each'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:79:in `map'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:79:in `_serializable_array'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:73:in `serializable_array'
active_model_serializers-0.8.4/lib/active_model/array_serializer.rb:53:in `as_json'
activesupport-7.0.8.1/lib/active_support/json/encoding.rb:22:in `encode'
activesupport-7.0.8.1/lib/active_support/json/encoding.rb:22:in `encode'
activesupport-7.0.8.1/lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers-0.8.4/lib/active_model/serializer.rb:331:in `to_json'
multi_json-1.15.0/lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json-1.15.0/lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json-1.15.0/lib/multi_json/adapter.rb:25:in `dump'
multi_json-1.15.0/lib/multi_json.rb:139:in `dump'
/var/www/discourse/app/controllers/application_controller.rb:554:in `render_json_dump'
/var/www/discourse/app/controllers/users_controller.rb:156:in `block (2 levels) in show'
actionpack-7.0.8.1/lib/action_controller/metal/mime_responds.rb:214:in `respond_to'
/var/www/discourse/app/controllers/users_controller.rb:149:in `show'
actionpack-7.0.8.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-7.0.8.1/lib/abstract_controller/base.rb:215:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/rendering.rb:165:in `process_action'
actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
i18n-1.14.5/lib/i18n.rb:351:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:423:in `with_resolved_locale'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack-7.0.8.1/lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/rescue.rb:23:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `block in instrument'
activesupport-7.0.8.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport-7.0.8.1/lib/active_support/notifications.rb:206:in `instrument'
actionpack-7.0.8.1/lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack-7.0.8.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord-7.0.8.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack-7.0.8.1/lib/abstract_controller/base.rb:151:in `process'
actionview-7.0.8.1/lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler-3.3.1/lib/mini_profiler/profiling_methods.rb:89:in `block in profile_method'
actionpack-7.0.8.1/lib/action_controller/metal.rb:188:in `dispatch'
actionpack-7.0.8.1/lib/action_controller/metal.rb:251:in `dispatch'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `each'
actionpack-7.0.8.1/lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack-7.0.8.1/lib/action_dispatch/routing/route_set.rb:852:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
rack-2.2.9/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.9/lib/rack/conditional_get.rb:27:in `call'
rack-2.2.9/lib/rack/head.rb:12:in `call'
actionpack-7.0.8.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:393:in `call'
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'
rack-2.2.9/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.9/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/cookies.rb:704:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport-7.0.8.1/lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack-7.0.8.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'
logster-2.19.1/lib/logster/middleware/reporter.rb:40:in `call'
railties-7.0.8.1/lib/rails/rack/logger.rb:40:in `call_app'
railties-7.0.8.1/lib/rails/rack/logger.rb:27:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/request_id.rb:26:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:24:in `call'
rack-2.2.9/lib/rack/method_override.rb:24:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
rack-2.2.9/lib/rack/sendfile.rb:110:in `call'
actionpack-7.0.8.1/lib/action_dispatch/middleware/host_authorization.rb:131:in `call'
rack-mini-profiler-3.3.1/lib/mini_profiler.rb:191:in `call'
message_bus-4.3.8/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:277:in `call'
railties-7.0.8.1/lib/rails/engine.rb:530:in `call'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `public_send'
railties-7.0.8.1/lib/rails/railtie.rb:226:in `method_missing'
rack-2.2.9/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.9/lib/rack/urlmap.rb:58:in `each'
rack-2.2.9/lib/rack/urlmap.rb:58:in `call'
unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

Running discourse Commits · discourse/discourse · GitHub

1 « J'aime »

Je viens de rencontrer cela moi-même sur une instance auto-hébergée que je possède. Extraits des journaux de mise à niveau ci-dessous.

Arrêt de 2 workers Unicorn, pour libérer de la mémoire
Arrêt de la file d'attente des tâches pour récupérer de la mémoire, le PID maître est 2132120
$ cd /var/www/discourse/plugins/docker_manager && git fetch --tags --prune-tags --prune --force
$ cd /var/www/discourse/plugins/docker_manager && git reset --hard HEAD@{upstream}
HEAD est maintenant à dec486d Mise à jour des traductions (#213)
$ bundle install --retry 3 --jobs 4
Bundle complète ! 137 dépendances de Gemfile, 170 gems maintenant installées.
Les gems des groupes 'development' et 'test' n'ont pas été installées.
Les gems groupées sont installées dans `./vendor/bundle`
[...]
 - dist/javascripts/squoosh/squoosh_resize.js : 4.53 kB (1.29 kB compressé)
Terminé en 89.56s.
Purge des fichiers temporaires
Compilation des assets
Téléchargement de MaxMindDB...
#<Thread:0x00007fe9902157b0 /var/www/discourse/lib/tasks/maxminddb.rake:62 run> terminé avec une exception (report_on_exception est vrai) :
/var/www/discourse/lib/discourse_ip_info.rb:48:in `mmdb_download': undefined method `path' for nil:NilClass (NoMethodError)

    filename = File.basename(gz_file.path)
                                    ^^^^^
    from /var/www/discourse/lib/tasks/maxminddb.rake:67:in `block (3 levels) in <main>'
    from /var/www/discourse/lib/tasks/maxminddb.rake:65:in `each'
    from /var/www/discourse/lib/tasks/maxminddb.rake:65:in `block (2 levels) in <main>'
En cours de compression : locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js
gzip -f -c -9 /var/www/discourse/public/assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js > /var/www/discourse/public/assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js.gz
Compilation des Javascript et génération des Source Maps
[...]
cible de précompilation : color_definitions Light (Light)
cible de précompilation : color_definitions Light (air-light)
cible de précompilation : color_definitions Light (air-dark)
cible de précompilation : color_definitions Light (Base)
cible de précompilation : desktop_theme Dark
cible de précompilation : mobile_theme Dark
cible de précompilation : color_definitions Dark (Simple Dark)
cible de précompilation : color_definitions Dark (air-light)
cible de précompilation : color_definitions Dark (air-dark)
cible de précompilation : color_definitions Dark (Base)
CSS compilé : 2024-05-15 18:13:29 UTC
/var/www/discourse/lib/discourse_ip_info.rb:48:in `mmdb_download': undefined method `path' for nil:NilClass (NoMethodError)

    filename = File.basename(gz_file.path)
                                    ^^^^^
    from /var/www/discourse/lib/tasks/maxminddb.rake:67:in `block (3 levels) in <main>'
    from /var/www/discourse/lib/tasks/maxminddb.rake:65:in `each'
    from /var/www/discourse/lib/tasks/maxminddb.rake:65:in `block (2 levels) in <main>'
Docker Manager : ÉCHEC DE LA MISE À NIVEAU
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:210:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:111:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor.rb:527:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.1/lib/rails/commands.rb:18:in `<main>'
internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb:37:in `require'
internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb:37:in `require'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'
Démarrage de 2 workers Unicorn qui ont été arrêtés initialement
1 « J'aime »

J’ai le même problème depuis un certain temps et j’ai dû désactiver l’intégration MaxMind afin de reconstruire.

Je pense que le problème a peut-être été résolu au moins sur tests-réussis, mais je suis sur la dernière version stable (3.2.2) donc j’ai supposé que je devrais attendre. Cependant, il y a un rapport du même problème avec la version 3.3.0, donc peut-être que cela nécessite un examen plus approfondi.

J’ai essayé ce qui suit et cela a semblé fonctionner :

  1. Connexion SSH à mon serveur.
  2. Modification de app.yml pour ajouter DISCOURSE_MAXMIND_ACCOUNT_ID: REDACTED
  3. Exécution de ./launcher rebuild app

La reconstruction s’est terminée sans erreur apparente. Le site est opérationnel. Malheureusement, tant qu’un autre commit ne sera pas poussé vers discourse_docker, je ne pourrai pas tester la mise à jour via le tableau de bord d’administration pour voir si cela a résolu le problème ou non.

Edit : Il semble que bien que la reconstruction ait été réussie, MaxMind n’est pas fonctionnel.

3 « J'aime »

J’ai essayé cela aussi, mais inclure le DISCOURSE_MAXMIND_ACCOUNT_ID n’a fait aucune différence pour moi car la reconstruction ne se termine toujours pas (avec la dernière version stable). Seule la suppression de DISCOURSE_MAXMIND_LICENSE_KEY semble fonctionner.

Journal
...
Compilation CSS terminée : 2024-05-15 20:34:22 UTC
/var/www/discourse/lib/discourse_ip_info.rb:48:in `mmdb_download': undefined method `path' for nil:NilClass (NoMethodError)

    filename = File.basename(gz_file.path)
                                    ^^^^^
	from /var/www/discourse/lib/tasks/maxminddb.rake:67:in `block (3 levels) in <main>'
	from /var/www/discourse/lib/tasks/maxminddb.rake:65:in `each'
	from /var/www/discourse/lib/tasks/maxminddb.rake:65:in `block (2 levels) in <main>'
I, [2024-05-15T20:34:22.860678 #1]  INFO -- : Checking 'Category Icons' for 'default'... à jour
Checking 'discourse-profile-custom-link' for 'default'... à jour
Downloading MaxMindDB...
Compressing Javascript and Generating Source Maps


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' failed with return #&lt;Process::Status: pid 1399 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", "tag"=>"precompile", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 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.