cbreit
(cb)
September 2, 2023, 1:37pm
1
Hey people,
When running a docker based install, and setting DISCOURSE_MAXMIND_LICENSE_KEY
the image creation process aborts with this error:
/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>'
When leaving DISCOURSE_MAXMIND_LICENSE_KEY
empty, everything works fine.
Tested with versions: stable
and tests-passed
The Maxmind license works â so both URLs provide access to the .mmdb files:
Just a guess (Iâm not a ruby guys; so please go easy on me) â maybe the â.mmdbâ extension causes problems in FileHelper.download(...)
a couple of lines below :
require "resolv"
class DiscourseIpInfo
include Singleton
def initialize
open_db(DiscourseIpInfo.path)
end
def open_db(path)
@loc_mmdb = mmdb_load(File.join(path, "GeoLite2-City.mmdb"))
@asn_mmdb = mmdb_load(File.join(path, "GeoLite2-ASN.mmdb"))
@cache = LruRedux::ThreadSafeCache.new(2000)
end
def self.path
@path ||= File.join(Rails.root, "vendor", "data")
end
def self.mmdb_path(name)
File.join(path, "#{name}.mmdb")
Adding â.mmdbâ to the links provided above causes an Invalid edition ID
error.
Hope this helps narrowing down the issue.
1 Like
Hello and welcome @cbreit
I think weâve had a couple of reports of some rebuilds failing over a Maxmind key issue:
Update from 3.0.0.beta16 to 3.1.0.beta2 - #17 by vmsman
My Discourse is Down. Certificate Issue? - #27 by JammyDodger
This may be the extra info we need to figure out whatâs going on. Thanks for digging.
pfaffman
(Jay Pfaffman)
September 3, 2023, 10:27am
4
Are you sure that your license key is valid and entered correctly?
1 Like
cbreit
(cb)
September 3, 2023, 12:20pm
5
Youâre welcome.
Just let me know if I shall try something or if you need additional info.
cbreit
(cb)
September 3, 2023, 12:23pm
6
The key id definitely valid.
And itâs also entered correctly as the whole stuff is fully automated via Ansible.
The same key works at other locations in the playbook like a charm (and there are also no rate-limiting issues).
Feels like the URL is just not working.
1 Like
DaVania
(Ivan Miransky)
September 9, 2023, 3:41pm
7
Since I have been having the same problem and can confirm that when clearing out the license key, my rebuild problems magically goes away.
I have even over a couple of days, tried my best to dig into the problem.
I think I have it right, but I might aswell be wrong.
During build, it seems like the mmdb files are missing, perhaps due to them not being present in the base image, or more likely, that they are being deleted and/or not even downloaded prior to them being loaded, hence the build failsâŚ
Come to think of it, mmdb_download being called points to code trying to download the file.
Iâve successfully downloaded the files manually (from the within the docker container) with wget, so the license is working as expected.
1 Like
MarcP
(MarcP)
February 29, 2024, 6:08am
8
Just to bump this is still an issue, just had the exact same when adding the key and uncommenting the setting in app.yml.
1 Like
Got this notice when updating from main branch today:
Downloading MaxMindDB... MaxMind IP database updates require a license Please set DISCOURSE_MAXMIND_LICENSE_KEY to one you generated at https://www.maxmind.com MaxMind IP database updates require a license Please set DISCOURSE_MAXMIND_LICENSE_KEY to one you generated at https://www.maxmind.com
But never setup a license key for this, and donât know how to integrate those anyway.
Update still completed so this doesnât seem to be causing any problem, but may be some kind of a minor error.
Firepup650
(Firepup Sixfifty)
March 1, 2024, 4:30am
10
I think thatâs expected without a maxmind key?
2 Likes
Flow
(Florian Schmaus)
May 9, 2024, 12:24pm
11
We run into the same issue. Adding DISCOURSE_MAXMIND_ACCOUNT_ID
to the env fixed this for me.
Strike that, I first assumed that the container build successfully, but that was not the case.
pfaffman
(Jay Pfaffman)
May 9, 2024, 1:36pm
13
Did you rebuld recently? What error do you have?
1 Like
Flow
(Florian Schmaus)
May 9, 2024, 2:30pm
14
Yes, this was today. The error OP posted.
pmusaraj
(Penar Musaraj)
May 9, 2024, 5:44pm
15
Can you post the exact error you are seeing? There was a related change merged in the last 24 hours, so I suspect you may have a slightly different problem to the OP (if you are on tests-passed
):
committed 07:11AM - 09 May 24 UTC
This commit switches `DiscourseIpInfo.mmdb_download` to use the
permalinks supp⌠lied by MaxMind to download the MaxMind databases as
specified in
https://dev.maxmind.com/geoip/updating-databases#directly-downloading-databases
which states:
```
To directly download databases, follow these steps:
1. In the "Download Links" column, click "Get Permalink(s)" for the desired database.
2. Copy the permalink(s) provided in the modal window.
3. Provide your account ID and your license key using Basic Authentication to authenticate.
```
Previously we are downloading from `https://download.maxmind.com/app/geoip_download` but this is not
documented anyway on MaxMind's docs so this URL can in theory break
in the future without warning. Therefore, we are taking a proactive
approach to download the databases from MaxMind the recommended way
instead of relying on a hidden URL. This old way of downloading the
databases with only a license key will be deprecated in 3.3 and be
removed in 3.4.
2 Likes
RBoy
(RBoy)
May 15, 2024, 7:45am
16
Continuing the conversion from over here .
I updated app.yml
to include the account ID
Now I see an error when I rebuild (tests-passed
):
****************************************************************************************************
MaxMindDB (GeoLite2-City) could not be downloaded: 400 Error
****************************************************************************************************
Message
MaxMindDB (GeoLite2-City) could not be downloaded: 400 Error
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>'
Any ideas what this may be?
RBoy
(RBoy)
May 15, 2024, 8:00am
17
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 Like
jomaxro
(Joshua Rosenfeld)
May 15, 2024, 6:27pm
18
I just ran into this myself on a self-hosted instance I have. Excerpts from the upgrade logs below.
Stopping 2 Unicorn worker(s), to free up memory
Stopping job queue to reclaim memory, master pid is 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 is now at dec486d Update translations (#213)
$ bundle install --retry 3 --jobs 4
Bundle complete! 137 Gemfile dependencies, 170 gems now installed.
Gems in the groups 'development' and 'test' were not installed.
Bundled gems are installed into `./vendor/bundle`
[...]
- dist/javascripts/squoosh/squoosh_resize.js: 4.53 kB (1.29 kB gzipped)
Done in 89.56s.
Purging temp files
Bundling assets
Downloading MaxMindDB...
#<Thread:0x00007fe9902157b0 /var/www/discourse/lib/tasks/maxminddb.rake:62 run> terminated with exception (report_on_exception is true):
/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>'
Skipping: break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js already compressed
Skipping: service-worker-fadf8e4b5a6844dadaf6c3f1fb335fdd9dcb030f2bc22fcb96537679dfd2fa2d.js already compressed
Compressing: 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
Compressing Javascript and Generating Source Maps
[...]
precompile target: color_definitions Light (Light)
precompile target: color_definitions Light (air-light)
precompile target: color_definitions Light (air-dark)
precompile target: color_definitions Light (Base)
precompile target: desktop_theme Dark
precompile target: mobile_theme Dark
precompile target: color_definitions Dark (Simple Dark)
precompile target: color_definitions Dark (air-light)
precompile target: color_definitions Dark (air-dark)
precompile target: color_definitions Dark (Base)
Done compiling CSS: 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: FAILED TO UPGRADE
#<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>'
Spinning up 2 Unicorn worker(s) that were stopped initially
1 Like
I have been having the same issue for a while now and had to disable the MaxMind integration in order to rebuild.
I think the issue may have been fixed at least on tests-passed, but Iâm on latest stable (3.2.2) so I assumed I would have to wait. However, there is a report of the same with 3.3.0, so perhaps this needs a closer look.
jomaxro
(Joshua Rosenfeld)
May 15, 2024, 6:47pm
22
I tried the following, and it seemed to work:
SSHâd into my server.
Edited app.yml
to add DISCOURSE_MAXMIND_ACCOUNT_ID: REDACTED
Ran ./launcher rebuild app
The rebuild completed without apparent error. Site is up and running. Unfortunately, until there is another commit pushed to discourse_docker
, I canât test the update through the admin dashboard to see if that resolved it or not.
Edit: It appears that while the rebuild was successful, MaxMind is not functional.
3 Likes
Iâve tried that too, but including the DISCOURSE_MAXMIND_ACCOUNT_ID made no difference for me as the rebuild still doesnât finish (with latest stable). Only skipping DISCOURSE_MAXMIND_LICENSE_KEY seems to work.
Log
...
Done compiling CSS: 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'... up to date
Checking 'discourse-profile-custom-link' for 'default'... up to date
Downloading MaxMindDB...
Compressing Javascript and Generating Source Maps
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 1399 exit 1>
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.