cbreit
(cb)
9월 2, 2023, 1:37오후
1
여러분,
docker 기반 설치 환경에서 DISCOURSE_MAXMIND_LICENSE_KEY를 설정하면 이미지 생성 프로세스가 다음과 같은 오류로 중단됩니다:
/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>'
DISCOURSE_MAXMIND_LICENSE_KEY를 비워두면 모든 것이 정상적으로 작동합니다.
테스트한 버전: stable 및 tests-passed
Maxmind 라이선스는 정상적으로 작동합니다. 두 URL 모두 .mmdb 파일에 접근할 수 있습니다:
추측이지만 (저는 Ruby 개발자가 아니므로 너그럽게 봐주세요) – 몇 줄 아래에 있는 FileHelper.download(...)에서 ‘.mmdb’ 확장자가 문제를 일으키는 것 같습니다:
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")
위에서 제공한 링크에 ".mmdb"를 추가하면 Invalid edition ID 오류가 발생합니다.
이 정보가 문제 해결에 도움이 되길 바랍니다.
pfaffman
(Jay Pfaffman)
9월 3, 2023, 10:27오전
4
라이선스 키가 유효하며 올바르게 입력되었는지 확인해 보셨나요?
cbreit
(cb)
9월 3, 2023, 12:20오후
5
천만에요.
무엇을 시도해 볼지, 아니면 추가 정보가 필요하신지 알려주세요.
cbreit
(cb)
9월 3, 2023, 12:23오후
6
키 ID는 분명히 유효합니다.
또한 Ansible을 통해 전체 프로세스가 완전히 자동화되어 있으므로, 키도 올바르게 입력되고 있습니다.
같은 키는 플레이북의 다른 위치에서는 문제없이 잘 작동합니다(레이트 리미팅 문제도 없습니다).
URL이 단순히 작동하지 않는 것 같습니다.
DaVania
(Ivan Miransky)
9월 9, 2023, 3:41오후
7
저도 동일한 문제를 겪고 있으며, 라이선스 키를 지우면 재빌드 문제가 마법처럼 사라진다는 것을 확인했습니다.
며칠 동안 이 문제를 파헤쳐 보려고 최선을 다했습니다.
제 추측이 맞을 수도 있지만, 틀릴 수도 있습니다.
빌드 중 mmdb 파일이 누락된 것으로 보이며, 이는 베이스 이미지 안에 해당 파일이 존재하지 않기 때문이거나, 더 가능성이 높은 것은 파일이 로드되기 전에 삭제되거나 심지어 다운로드조차 되지 않기 때문인 것 같습니다. 이로 인해 빌드가 실패하는 것입니다.
생각해보니, mmdb_download가 호출된다는 것은 코드가 파일을 다운로드하려고 시도하고 있다는 것을 의미합니다.
저는 도커 컨테이너 내부에서 wget을 사용하여 파일을 성공적으로 수동으로 다운로드했으며, 라이선스가 정상적으로 작동하고 있음을 확인했습니다.
MarcP
(MarcP)
2월 29, 2024, 6:08오전
8
여전히 문제가 있다는 점을 다시 한번 알려드립니다. 키를 추가하고 app.yml에서 해당 설정의 주석을 해제했을 때 동일한 문제가 발생했습니다.
오늘 main 브랜치에서 업데이트할 때 이 알림이 표시되었습니다:
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
하지만 저는 이 라이선스 키를 설정한 적이 없으며, 어떻게 통합해야 하는지我也不知道합니다.
업데이트는 완료되었기 때문에 문제가 없는 것 같지만, 경미한 오류일 수도 있습니다.
Firepup650
(Firepup Sixfifty)
3월 1, 2024, 4:30오전
10
maxmind 키가 없으면 그런 일이 발생하는 게 정상인 것 같습니다.
Flow
(Florian Schmaus)
5월 9, 2024, 12:24오후
11
저희도 같은 문제를 겪고 있습니다. DISCOURSE_MAXMIND_ACCOUNT_ID를 환경 변수에 추가하니 저의 경우 해결되었습니다.
말씀을 취소합니다. 처음에는 컨테이너가 성공적으로 빌드된 줄 알았는데, 실제로는 그렇지 않았습니다.
pfaffman
(Jay Pfaffman)
5월 9, 2024, 1:36오후
13
최근에 재빌드(rebuild)를 하셨나요? 어떤 오류가 발생하나요?
pmusaraj
(Penar Musaraj)
5월 9, 2024, 5:44오후
15
현재 보고 계신 정확한 오류를 게시해 주시겠어요? 지난 24시간 동안 관련 변경 사항이 병합되었기 때문에, tests-passed 브랜치를 사용 중이라면 OP(원래 포스터)와는 약간 다른 문제를 겪고 계실 수 있다고 의심됩니다:
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.
RBoy
(RBoy)
5월 15, 2024, 7:45오전
16
여기 에서 계속 진행 중인 변환 작업입니다.
계정 ID를 포함하도록 app.yml을 업데이트했습니다.
이제 다시 빌드(tests-passed)할 때 오류가 발생합니다:
****************************************************************************************************
MaxMindDB (GeoLite2-City) 다운로드 실패: 400 Error
****************************************************************************************************
Message
MaxMindDB (GeoLite2-City) 다운로드 실패: 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>'
이것이 어떤 문제일 수 있는지 아이디어가 있으신가요?
RBoy
(RBoy)
5월 15, 2024, 8:00오전
17
로그에서 이것도 확인됩니다
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>'
실행 중인 discourse 버전: Commits · discourse/discourse · GitHub
jomaxro
(Joshua Rosenfeld)
5월 15, 2024, 6:27오후
18
저도 자체 호스팅 인스턴스에서 이 문제를 직접 겪었습니다. 아래는 업그레이드 로그의 일부입니다.
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
오래전부터 동일한 문제를 겪어 왔고, 재구성을 위해 MaxMind 통합을 비활성화해야 했습니다.
이 문제는 테스트-패스드(tests-passed) 브랜치에서는 수정되었을 수 있다 고 생각했지만, 저는 최신 안정판(3.2.2)을 사용 중이므로 기다려야 한다고 생각했습니다. 그러나 3.3.0에서도 동일한 문제가 보고된 사례 가 있으므로, 이 문제에 대해 좀 더 세밀한 조사가 필요할 수 있습니다.
jomaxro
(Joshua Rosenfeld)
5월 15, 2024, 6:47오후
22
다음과 같이 시도해 보았는데, 작동하는 것 같습니다:
서버에 SSH로 접속했습니다.
app.yml 파일을 편집하여 DISCOURSE_MAXMIND_ACCOUNT_ID: REDACTED를 추가했습니다.
./launcher rebuild app 명령을 실행했습니다.
리빌드가 오류 없이 완료되었습니다. 사이트는 정상적으로 작동 중입니다. 불행히도 discourse_docker에 새로운 커밋이 푸시될 때까지 관리 대시보드를 통해 업데이트를 테스트하여 문제가 해결되었는지 확인할 수 없습니다.
수정: 리빌드 는 성공적으로 완료되었지만, MaxMind는 작동하지 않는 것으로 보입니다.
저도 시도해 봤지만, DISCOURSE_MAXMIND_ACCOUNT_ID를 포함해도 내 경우에는 아무런 차이가 없었습니다. 최신 안정판(latest stable)을 사용해도 재빌드(rebuild)가 여전히 완료되지 않습니다. DISCOURSE_MAXMIND_LICENSE_KEY를 건너뛰는 것만 효과가 있는 것 같습니다.
로그
...
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.