# Пересборка всегда завершается неудачей, когда исчерпан дневной лимит MAXMIND

**URL:** https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775
**Category:** Bug
**Tags:** maxmind, dev-ops, fixed
**Created:** [19.Июнь.2024 15:13:54 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775 "2024-06-19T15:13:54Z")
**Posts on this page:** 20
**Page:** 3

<div class="post-metadata">

### Author: ![md-misko](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/md-misko/32/126315_2.png) [@md-misko](https://meta.discourse.org/u/md-misko)
#### Post date: [27.Июль.2024 05:30:34 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/44 "2024-07-27T05:30:34Z")

</div>

> [@tgxworld](#):
>
> Да, я думаю, что вы правы. Maxmind — не критичная функция, поэтому нам не стоит допускать сбоя при загрузке, если мы не можем что-то скачать.

Можно ли это исправить до следующего релиза, _пожалуйста_! Я тестирую развёртывание новых VPS (каждый раз с разным IP), и оно всё ещё не удаётся в двух случаях из трёх.

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [30.Июль.2024 03:38:38 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/47 "2024-07-30T03:38:38Z")

</div>

Обратите внимание, что мы только что выпустили быстрое исправление, которое предотвращает сбой пересборки при ошибке загрузки баз данных MaxMind.

> <https://github.com/discourse/discourse/commit/3193afe7ca8f95e907b1513dbcd08a5745f42d4d>
>
> Since switching to Maxmind permalinks to download the databases in
> 7079698cdfb6…f0cd73cdfd305b15350634fcd56a, we have received multiple
> reports about rebuilds failing as \`maxminddb:refresh\` runs during
> the rebuilds and failing to download the databases cases the rebuilds to
> fail.
> 
> Downloading Maxmind databases should not sit in the critical rebuild
> path but since we are close to the Discourse 3.3 release, we have opted
> to just rescue all errors encountered when downloading the databases.
> 
> In the near future after the Discourse 3.3 release, we will be looking
> at moving the downloading of maxmind databases out of the rebuild path.

После выпуска Discourse 3.3 мы вернёмся к вопросу о том, как сделать загрузку баз данных MaxMind менее подверженной ошибкам.

---

<div class="post-metadata">

### Author: ![md-misko](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/md-misko/32/126315_2.png) [@md-misko](https://meta.discourse.org/u/md-misko)
#### Post date: [30.Июль.2024 06:03:50 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/48 "2024-07-30T06:03:50Z")

</div>

> [@tgxworld](#):
>
> Обратите внимание, что мы только что выпустили быстрое исправление, которое предотвращает сбой пересборки при неудачной загрузке баз данных MaxMind.

Хм, у меня всё ещё происходит сбой (чистая установка, не пересборка)?

```plaintext
I, [2024-07-30T05:19:47.753779 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'
Очистка временных файлов
Упаковка ресурсов
I, [2024-07-30T05:19:58.764890 #1059] INFO -- : Запись /var/www/discourse/public/assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js
I, [2024-07-30T05:19:58.787966 #1059] INFO -- : Запись /var/www/discourse/public/assets/service-worker-77c5660ded6e2c94a6a5ce2594411b46d0e15a1f5b9065e57b85652d7cbe3ead.js
I, [2024-07-30T05:19:58.797458 #1059] INFO -- : Запись /var/www/discourse/public/assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js
I, [2024-07-30T05:19:58.807019 #1059] INFO -- : Запись /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428dcfd680205516fe211700a71c7adb5cbcf4df2cc5.js
rake aborted!
Zlib::BufError: ошибка буфера (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>'
Задачи: TOP => assets:precompile
(Полный трассировочный отчёт можно получить, запустив задачу с флагом --trace)
I, [2024-07-30T05:20:01.382260 #1] INFO -- : Загрузка MaxMindDB...

I, [2024-07-30T05:20:01.438870 #1] INFO -- : Завершение асинхронных процессов
I, [2024-07-30T05:20:01.444360 #1] INFO -- : Отправка сигнала INT для HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 57
2024-07-30 05:20:01.448 UTC [57] LOG: получен запрос быстрого завершения
I, [2024-07-30T05:20:01.449248 #1] INFO -- : Отправка сигнала TERM для exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 120
120:signal-handler (1722316801) Получен SIGTERM, планирование завершения...
2024-07-30 05:20:01.512 UTC [57] LOG: прерывание всех активных транзакций
120:M 30 Jul 2024 05:20:01.523 # Пользователь запросил завершение...
120:M 30 Jul 2024 05:20:01.526 * Сохранение финального снимка RDB перед выходом.
2024-07-30 05:20:01.566 UTC [57] LOG: фоновый рабочий "запускщик логической репликации" (PID 72) завершил работу с кодом выхода 1
120:M 30 Jul 2024 05:20:01.586 * База данных сохранена на диск
120:M 30 Jul 2024 05:20:01.589 # Redis готов к выходу, до свидания...
2024-07-30 05:20:01.598 UTC [67] LOG: завершение работы
2024-07-30 05:20:02.090 UTC [57] LOG: система баз данных завершена

FAILED
--------------------
Pups::ExecError: команда cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' завершилась с ошибкой, код возврата #<Process::Status: pid 1057 exit 1>
Место возникновения ошибки: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
выполнение завершено с ошибкой с параметрами {"cd"=>"$home", "tag"=>"precompile", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'"]}
загрузка завершена с кодом выхода 1
**НЕ УДАЛОСЬ ЗАГРУЗИТЬСЯ** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь в диагностике проблемы.
c9da27502f7c288ec5465ca82b4830123a3c59003527b8f288457c594576adaa
обнаружена архитектура x86_64.

```

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [30.Июль.2024 06:43:46 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/49 "2024-07-30T06:43:46Z")

</div>

Подтвердите, пожалуйста, что вы следовали инструкциям по адресу [discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md) и у вас есть действительные учетные данные для MaxMind?

---

<div class="post-metadata">

### Author: ![md-misko](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/md-misko/32/126315_2.png) [@md-misko](https://meta.discourse.org/u/md-misko)
#### Post date: [30.Июль.2024 06:46:16 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/50 "2024-07-30T06:46:16Z")

</div>

> [@Alan Tan](#):
>
> Просто для подтверждения

Да, стандартная установка, действительные account\_id и license\_key MaxMind в app.yml

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [30.Июль.2024 07:19:38 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/51 "2024-07-30T07:19:38Z")

</div>

Просто для подтверждения: вы находитесь на ветке `tests-passed`, а не `stable`? Я только что протестировал это с некорректным ключом MaxMind и не вижу никаких ошибок.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [30.Июль.2024 07:43:59 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/52 "2024-07-30T07:43:59Z")

</div>

Не уверен, что проблема всё ещё связана с неверными учётными данными, но пересборка имеет тенденцию завершаться неудачей даже при правильных учётных данных.

---

<div class="post-metadata">

### Author: ![md-misko](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/md-misko/32/126315_2.png) [@md-misko](https://meta.discourse.org/u/md-misko)
#### Post date: [30.Июль.2024 07:52:14 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/53 "2024-07-30T07:52:14Z")

</div>

> [@Alan Tan](#):
>
> Просто для подтверждения, вы находитесь в ветке `tests-passed`

Да

> [@Alan Tan](#):
>
> Я только что протестировал это с некорректным ключом MaxMind

> [@Jakke Flemming](#):
>
> но пересборка имеет тенденцию завершаться неудачей даже с правильными учетными данными.

Точно, я использую действительный ключ! (Вторая попытка только что, новый VPS, другой IP-адрес, всё равно завершается неудачей с той же ошибкой).

---

<div class="post-metadata">

### Author: ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)
#### Post date: [30.Июль.2024 22:36:25 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/54 "2024-07-30T22:36:25Z")

</div>

При обновлении Docker из админ-панели возникла ошибка. Возможно, проблема вызвана созданными файлами. Эта ошибка всегда возникает одинаково, и мы не получаем ошибку, когда отключаем MaxMind. Между этими двумя структурами есть проблема, и они влияют друг на друга:

 ![image](https://global.discourse-cdn.com/meta/original/4X/6/7/c/67c615252467349db8c01824ccd2e6a150e2f535.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/3/7/0376c139a551bc012797bb8444a138259e3152eb.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/f/0/f/f0f2b6f4c40d8e08141063dff730fa5aeed7d305.png)

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [30.Июль.2024 22:41:10 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/55 "2024-07-30T22:41:10Z")

</div>

Я начинаю думать, что Maxmind здесь — это отвлекающий манёвр. Стек вызовов вообще не указывает на Maxmind, а сигнализирует об ошибке, возникшей в sprockets. Мне придётся углубиться в расследование, чтобы проверить, смогу ли я воспроизвести это на droplet.

---

<div class="post-metadata">

### Author: ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)
#### Post date: [30.Июль.2024 22:46:56 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/56 "2024-07-30T22:46:56Z")

</div>

Я тоже так думаю. MaxMind, возможно, не является проблемой, но его деятельность выдвигает на первый план проблемы в некоторых областях.

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [30.Июль.2024 22:59:27 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/57 "2024-07-30T22:59:27Z")

</div>

Вы запускаете это на DigitalOcean? Если да, можете сообщить, сколько vCPU и оперативной памяти вы выбрали?

---

<div class="post-metadata">

### Author: ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)
#### Post date: [30.Июль.2024 23:08:06 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/58 "2024-07-30T23:08:06Z")

</div>

Нет, у меня свой сервер, а PostgreSQL находится на отдельном сервере. Я сделал заметку здесь, вы можете ознакомиться с ней:

> [@Rebuilding always fails when the MAXMIND daily limit is exhausted](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted-i-think-it-would-be-good-to-fix-this/312775/43?u=kuaza):
>
> This problem still persists. I will explain the incident in detail: I made an update from the admin, it stopped halfway. So I started a recompile from the ssh panel. Boom gave an error, sample error is below. Then I created a new maxmind key and recompiled it, it gave an error again, same error. (interesting, maybe the key was not activated). Then I disabled the maxmind setting in the app.yml file. I recompiled it and the compilation was successful. The add-ons I used are shown in the image,…

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [30.Июль.2024 23:35:17 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/59 "2024-07-30T23:35:17Z")

</div>

Сколько оперативной памяти и процессорных ресурсов есть на вашем сервере? Я пытаюсь воспроизвести эту проблему и многократно пересоздавал свой droplet, но не могу столкнуться с ошибкой.

---

<div class="post-metadata">

### Author: ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)
#### Post date: [30.Июль.2024 23:41:12 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/60 "2024-07-30T23:41:12Z")

</div>

25 ГБ ОЗУ для основного сервера  
20 ГБ ОЗУ для сервера PostgreSQL

8 процессоров  
4 ядра процессора

```plaintext
db_shared_buffers: "4096MB"
UNICORN_WORKERS: 8
UNICORN_SIDEKIQ_MAX_RSS: 1500
## Плагины размещаются здесь
## подробности см. по адресу https://meta.discourse.org/t/19157
hooks:
  after_code:
     - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-question-answer.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-gamification.git
          - git clone https://github.com/discourse/discourse-restricted-replies.git
          - git clone https://github.com/discourse/discourse-saved-searches.git
          - git clone https://github.com/discourse/discourse-follow.git
# - git clone https://github.com/discourse/discourse-yearly-review.git
          - git clone https://github.com/discourse/discourse-voting.git
          - git clone https://github.com/discourse/discourse-no-bump.git
          - git clone https://github.com/discourse/discourse-math.git
          - git clone https://github.com/discourse/discourse-akismet.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/spirobel/discourse-matheditor.git
          - git clone https://github.com/discourse/discourse-google-one-tap.git
          - git clone https://github.com/discourse/discourse-ai.git
# - git clone https://github.com/paviliondev/discourse-custom-wizard.git
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/discourse-subscriptions.git
          - git clone https://github.com/discourse/discourse-assign.git
# - git clone https://github.com/discourse/discourse-policy.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
# - git clone https://github.com/merefield/discourse-chatbot.git

# after_assets_precompile:
# - exec:
# cd: $home
# cmd:
# - sudo -E -u discourse bundle exec rake s3:upload_assets
# - sudo -E -u discourse bundle exec rake s3:expire_missing_assets
# - sudo -E -u discourse bundle exec rake uploads:migrate_to_s3

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [30.Июль.2024 23:55:21 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/61 "2024-07-30T23:55:21Z")

</div>

Сегодня у меня возникла эта проблема на машине, где, кажется, 16 ГБ оперативной памяти (хотя запущены и другие процессы), и 12 или более потоков (точные цифры я смогу узнать завтра). Похоже, что MaxMind — это ложная зацепка, но каждый раз отключение MaxMind решает проблему (так я поступил сегодня).

Но теперь и вы, и я попробовали добавить блок rescue в функцию MaxMind, и это не помогло.

Возможно, дело в чём-то, что происходит в процессе precompile до этого?

---

<div class="post-metadata">

### Author: ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)
#### Post date: [31.Июль.2024 00:04:36 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/62 "2024-07-31T00:04:36Z")

</div>

У меня есть сомнения по поводу этого: `assets:precompile`

Следуя этой последовательности событий и анализируя инциденты, произошедшие между ними, мы можем получить некоторое представление:

Упаковка ассетов  
…  
Загрузка MaxMindDB..  
… _(Возможно, ошибка где-то между ними)_  
assets:precompile

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [31.Июль.2024 00:10:47 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/63 "2024-07-31T00:10:47Z")

</div>

> [@pfaffman](#):
>
> Возможно, это связано с чем-то, что происходит в precompile раньше?

Я только что осознал, что мы загружаем базы данных Maxmind в фоновом потоке одновременно с выполнением `assets:precompile`. Исходя из полученных трассировок стека, у меня есть гипотеза, что фоновый поток, используемый для загрузки базы данных Maxmind, каким-то образом влияет на `assets:precompile`.

> <https://github.com/discourse/discourse/pull/28157>
>
> We have been seeing \`ZLib::BufError\` when running the \`assets:precompile\` rake
> …task.
> 
> \`\`\`
> I, \[2024-07-30T05:19:58.807019 #1059\] INFO -- : Writing /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428dcfd680205516fe211700a71c7adb5cbcf4df2cc5.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'
> \`\`\`
> 
> The hypothesis here is that some thread unsafe issue is causing the
> problem since we download the Maxmind databases in a thread and run
> decompression operations once the gzip file is downloaded.
> 
> In the near term, we plan to move downloading of Maxmind databases out
> of the Rake task into a scheduled job so this patch should be considered
> a temporary solution.
> 
> The trade-off here is that build time will slightly increase since we
> are not longer downloading Maxmind databases while precompiling assets
> at the same time.

Сначала я выпущу исправление выше и не буду углубляться в корневую причину, поскольку мы планируем перенести загрузку баз данных Maxmind из процесса сборки.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [31.Июль.2024 00:16:54 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/64 "2024-07-31T00:16:54Z")

</div>

Звучит как отличная идея. Завтра я попробую снова включить MaxMind на нескольких сайтах.

---

<div class="post-metadata">

### Author: ![kuaza](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kuaza/32/264151_2.png) [@kuaza](https://meta.discourse.org/u/kuaza)
#### Post date: [31.Июль.2024 00:18:56 UTC](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775/65 "2024-07-31T00:18:56Z")

</div>

Могу ли я проверить это сейчас? Потому что когда обновление от администратора выдало ошибку, я попытался сделать это через SSH, но там тоже возникла ошибка. Если вы расскажете, как это сделать, я смогу попробовать в первый раз.

[Предыдущая страница](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775.md?page=2)

[Следующая страница](https://meta.discourse.org/t/rebuilding-always-fails-when-the-maxmind-daily-limit-is-exhausted/312775.md?page=4)
