일일 한도가 소진되면 재구성이 항상 실패합니다. 이 문제를 해결하는 것이 좋다고 생각합니다. 이 문제를 파악하기까지 2일을 허비하고 서버를 두 번이나 설정해야 했거든요. 아마 제가 너무 둔한 것일 수도 있지만 ![]()
일일 한도가 소진되면 이 과정을 건너뛰고 재생성을 계속 진행하도록 하는 것이 좋을 것 같습니다.
일일 한도가 소진되면 재구성이 항상 실패합니다. 이 문제를 해결하는 것이 좋다고 생각합니다. 이 문제를 파악하기까지 2일을 허비하고 서버를 두 번이나 설정해야 했거든요. 아마 제가 너무 둔한 것일 수도 있지만 ![]()
일일 한도가 소진되면 이 과정을 건너뛰고 재생성을 계속 진행하도록 하는 것이 좋을 것 같습니다.
네. MAXMIND 오류로 인해 재구축이 실패하는 것은 큰 문제입니다. 그들의 호스팅 환경에서는 인스턴스 간에 DB를 공유하고 있을 것 같습니다.
일일 제한이 있다는 것은 몰랐지만, 제가 확인한 이상한 오류들을 분명히 설명해 줍니다. 유일한 해결책은 재구축을 수행하기 위해 maxmind를 비활성화하는 것입니다.
수정 방법을 알아보기 위해 코드를 몇 번 살펴봤지만 아직 해결하지 못했습니다. 1~3줄만 수정하면 될 것 같습니다.
마침내 문제가 그들의 레이트 리미팅임을 식별해 주셨으므로, 이 이슈를
로 변경하겠습니다.
MAXMIND를 비활성화하고 다시 컴파일하니 작동했습니다. 하지만 다른 사용자들에게도 같은 문제가 발생할 수 있을 것 같아서 보고드립니다. 관심 가져주셔서 감사합니다. 좋은 하루 보내세요.
이 문제에 대해 단순하지만 효과적일 수 있는 수정 방법은 다음과 같습니다:
문제가 정확히 어떻게 발생하는지 알 수 없어 코드를 테스트하기는 어렵지만, 동작할 것으로 보입니다.
오늘 밤 작업을 해보고, 오류에 대한 정보를 찾으면 토픽을 업데이트하겠습니다. 시간을 내주셔서 감사합니다. 유용할 거라고 생각합니다.
이 주제에 대해 연구가 이루어진 적이 있나요? 저는 방금 시도해 봤는데, MAXMIND가 켜져 있을 때는 여전히 컴파일이 되지 않아서 컴파일을 하려면 꺼야 했습니다. 도움이 될 수 있을 것 같은데, zlip 오류도 함께 보고 있습니다.
아니면:
app.yml에서 라이선스 키를 잘못 입력한 것 같습니다. 이 부분을 수정하고 다시 컴파일을 시도했습니다. 하지만 키가 잘못되었거나 한도가 소진되었더라도, 오류를 표시하지 않고 컴파일이 계속 진행되어야 합니다.
해당 오류와 관련하여 app.yml 파일에도 DISCOURSE_MAXMIND_ACCOUNT_ID가 추가되어 있는지 확인해 주셨나요?
전체 로그를 공유해 주실 수 있나요?
다시 이 오류가 발생하면 오류 로그를 공유하겠습니다. 다만, 제공해주신 링크의 내용과 동일합니다.
한편, 키가 잘못되면 컴파일 시 오류가 발생합니다. 따라서 이 기능이 계속 유지되면서 잘못된 키나 ID가 감지될 때 경고가 표시되면 좋겠습니다.
음, 확실히 유효한 MaxMind 키를 사용하는데도 작동하지 않는 것 같습니다. 같은 IP에 여러 사이트를 두고 모두 데이터베이스를 요청하고 있어서 속도 제한(rate limit)에 걸린 걸까요?
...
Checking 'Guest Gate Theme Component' for 'default'... up to date
Checking '* Official: discourse-search-banner' for 'default'... up to date
Checking '* Official: Header submenus' for 'default'... up to date
Checking '* Auto linkify words (official)' for 'default'... up to date
Checking '* Official: New PM Dropdown Button (KED)' for 'default'... up to date
Checking 'Sidebar Theme Toggle' for 'default'... up to date
Downloading MaxMindDB...
FAILED
--------------------
Plugin name is 'DiscourseAddToSummary', but plugin directory is named 'discourse-add-to-summary'
Purging temp files
Bundling assets
I, [2024-07-03T15:34:03.558862 #1728] INFO -- : Writing /var/www/discourse/public/assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322
bf777d145fed04790e.js
I, [2024-07-03T15:34:03.565737 #1728] INFO -- : Writing /var/www/discourse/public/assets/service-worker-1c2f90c0e9ecfcf748d58ed6c37a510b3cd246299fcf
a5917a060293f1affb92.js
I, [2024-07-03T15:34:03.568027 #1728] INFO -- : Writing /var/www/discourse/public/assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e
78722e6f99d3656137.js
I, [2024-07-03T15:34:03.569522 #1728] INFO -- : Writing /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428d
cfd680205516fe211700a71c7adb5cbcf4df2cc5.js
I, [2024-07-03T15:34:04.079476 #1728] INFO -- : Writing /var/www/discourse/public/assets/locales/ar-583c921ae692b1e7c988997efcba99e6b41b62572682166e
2c62bae0caeaab2b.js
I, [2024-07-03T15:34:04.373049 #1728] INFO -- : Writing /var/www/discourse/public/assets/locales/be-ee1a0dd42713e1ca29dbacea5dcde76c51a441cb634c5d61
7ba4b20bb7ef5b05.js
rake aborted!
Zlib::BufError: buffer error (Zlib::BufError)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache/file_store.rb:100:in `<<'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache/file_store.rb:100:in `set'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache.rb:212:in `set'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache.rb:136:in `set'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:243:in `store_asset'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:185:in `load_from_unloaded'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:60:in `block in load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cached_environment.rb:47:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/base.rb:66:in `find_asset'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/base.rb:73:in `find_all_linked_assets'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:134:in `block in find'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:133:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:133:in `find'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:186:in `compile'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-rails-3.5.1/lib/sprockets/rails/task.rb:67:in `block (3 levels) in define'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/rake/sprocketstask.rb:147:in `with_logger'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-rails-3.5.1/lib/sprockets/rails/task.rb:66:in `block (2 levels) in define'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
I, [2024-07-03T15:34:04.978774 #1] INFO -- : Checking 'Add(back) Category Colmn (TH)' for 'default'... up to date
Checking '* Official: discourse-placeholder-theme-component (JP)' for 'default'... up to date
Checking '* Discourse Easy Footer (Official)' for 'default'... up to date
Checking 'discourse-user-field-prompt' for 'default'... up to date
Checking '* Rotate Global Banner(JP)' for 'default'... up to date
Checking 'Guest Gate Theme Component' for 'default'... up to date
Checking '* Official: discourse-search-banner' for 'default'... up to date
Checking '* Official: Header submenus' for 'default'... up to date
Checking '* Auto linkify words (official)' for 'default'... up to date
Checking '* Official: New PM Dropdown Button (KED)' for 'default'... up to date
Checking 'Sidebar Theme Toggle' for 'default'... up to date
Downloading MaxMindDB...
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' failed with ret
urn #<Process::Status: pid 1726 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.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 bund
le 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.
Maxmind 키와 ID를 주석 처리한 후 다시 빌드하면 성공합니다.
왜 이렇게 어려운 걸까요?
아래는 해당 제한 사항입니다.
정확히 어떻게 이 한도에 걸리는지 명확하지는 않지만, 그들의 서버에서 발생하는 일시적인 장애(spurious downtime)를 제외하면 유일한 설명입니다.
저에게는 서버를 하루에 두 번 이상 재구축할 때마다 이 한도가 적용됩니다.
또한 다음과 같이 시작되는 이메일도 받습니다(강조는 제 것입니다)
즉, IP별 한도도 있는 것 같습니다.
정말 큰 도움이 됩니다. 그 이메일은 본 적이 없었네요.
여러 대의 서버가 단일 IP에서 그렇게 행동하지 않도록 조치를 취할 수는 있을 것 같지만, 하루에 두 번 재구축할 수 없다는 것은 꽤 큰 도전이네요. 캐싱 프록시 외에는 떠오르는 것이 없습니다.
이 문제가 생기지 않도록 돈을 지불할 의향이 있지만, 그럴 방법을 찾지 못하겠습니다.
하지만 속도 제한과는 다른 문제입니다. 이미지를 빌드한 후 /var/www/discourse/config/discourse.conf에서 값을 설정하고 rake 작업을 실행했을 때 데이터베이스가 정상적으로 다운로드되었기 때문입니다.
데이터베이스를 영구 저장소에 둘 수 있을까요?
이미지가 시작된 후에만 데이터베이스를 다운로드할 수 있을까요?
@JammyDodger 최신 릴리스 이후 Maxmind를 사용하여 빌드할 수 있었나요? @RGJ – 어떤 문제가 있었나요?
제가 Maxmind를 사용해 본 사이트들 중 제대로 동작한 곳은 없는 것 같습니다. 그리고 어제 작업했던 사이트에서는 부트스트랩이 실패했던 것과 동일한 설정으로 컨테이너 내부의 설정 파일을 직접 수정한 후, rake 태스크를 통해 데이터베이스를 정상적으로 가져올 수 있었습니다.
Maxmind로 인한 실패에 대한 다른 토픽들이 여러 개 있습니다.
며칠 전에는 Maxmind 계정 ID를 사용했는데도 재구성이 실패했지만, 바로 이어서 한 번 더 시도했을 때는 정상적으로 처리되었습니다.
우리는 문제가 없었습니다(다만, 자체 배포 시스템을 사용하고 있습니다).
방금 테스트해 보니 같은 IP에서 파일을 10회까지 가져올 수 있었습니다(그 이후로는 더 시도하지 않았습니다).
재구축을 중단시키는 에러를 방지하기 위해 제가 적용한 "수정"이 실패했습니다.
따라서 이 문제를 디버깅하는 것은 매우 어려울 것입니다.
새 서버로 일부 포럼을 이동한 후에도 동일한 이메일(그리고 문제)을 받았기 때문에, OP의 의견에 동의합니다. 재구축 옵션을 표시하거나, 재구축이 시작되기 전에 db를 가져오도록 시도하여 ‘다시 시도’ 또는 ‘Maxmind 없이 재구축’ 옵션을 선택할 수 있도록 하는 것이 좋겠습니다.
참고로, 최근 API 키 + 사용자 이름이 필수로 요구되도록 변경된 것이 업그레이드/재빌드 실패를 유발했고, 이로 인해 며칠간의 다운타임이 발생했습니다.
다른 분들 의견에 동의하며, app.yml에서 해당 설정을 비활성화하거나 주석 처리한 뒤 재빌드하면 문제가 해결됩니다. 아직 재활성화하지 않았으며, 이에 대한 수정안이 나올 때까지 기다리고 있습니다.
리빌드가 어디서 실패했는지 에러 메시지를 혹시 가지고 계신가요?