当 MAXMIND 每日配额用尽时,重建总是失败

当每日限额用尽时,重建总是失败。我认为应该修复这个问题,因为我因此损失了两天,并且设置了两次服务器才找出问题所在。也许我不太聪明 :slight_smile:

我认为当每日限额用尽时,您应该跳过此过程并继续重新创建。

4 个赞

是的。MAXMIND 出现错误导致重建失败是一个大问题。我猜在他们的托管环境中,他们一定以某种方式在实例之间共享数据库。

我不知道有每日限制,但这肯定解释了我看到的一些错误。唯一的解决方案是在重建时禁用 maxmind。

我看了几次代码,试图找出修复方法,但还没有成功。这应该是一个 1-3 行的修复。

既然你终于确定问题是他们的速率限制,我将把它改为 :bug:

5 个赞

我禁用了 MAXMIND 并重新编译,它就可以工作了。但是,我想报告这个问题,因为我认为它也可能发生在其他人身上。感谢您的关注,祝您好运。

2 个赞

这里有一个简单但可能有效的解决方案:

由于我不知道确切的复现问题的方法,因此很难测试代码,但它应该能起作用。

1 个赞

我今晚会做一些工作,如果我看到任何关于错误的资讯,我会更新这个主题。感谢您的时间,我认为这会很有帮助。

是否对该主题进行了任何研究?因为我刚做完,当 MAXMIND 开启时它仍然无法编译,我不得不关闭它才能编译。也许有帮助,我也看到了 zlip 错误。

注意:
我认为我在 app.yml 中错误地输入了许可证密钥。我已修复此问题并重新编译。但是,即使许可证密钥有误或额度已用完,它也必须继续编译而不会出现任何错误。

1 个赞

对于那个错误,你的 app.yml 中是否也添加了 DISCOURSE_MAXMIND_ACCOUNT_ID

2 个赞

您能分享一下完整的日志吗?

1 个赞

如果我再次遇到此错误,我会分享错误日志,但这与您提供的链接中的相同。

另一方面,当密钥不正确时,编译会出错。因此,最好让此功能继续运行,并在密钥或 ID 错误时发出警告。

好吧,看起来这似乎无法正常工作,尽管我相当确定我使用的 MaxMind 密钥是有效的。我想,既然我在同一个 IP 地址上运行多个站点,并且它们都在请求数据库,所以我触发了速率限制?

...
正在检查“Guest Gate Theme Component”的“default”... 已是最新版本
正在检查“* Official: discourse-search-banner”的“default”... 已是最新版本
正在检查“* Official: Header submenus”的“default”... 已是最新版本
正在检查“* Auto linkify words (official)”的“default”... 已是最新版本
正在检查“* Official: New PM Dropdown Button (KED)”的“default”... 已是最新版本
正在检查“Sidebar Theme Toggle”的“default”... 已是最新版本
正在下载 MaxMindDB...



失败
--------------------

                                                                                                                                     
插件名称为'DiscourseAddToSummary',但插件目录名为'discourse-add-to-summary'                                                     
正在清理临时文件                                                                                                                                   
正在捆绑资源                                                                                                                                      
I, [2024-07-03T15:34:03.558862 #1728]  INFO -- : 正在写入 /var/www/discourse/public/assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322
bf777d145fed04790e.js                                                                                                                                
I, [2024-07-03T15:34:03.565737 #1728]  INFO -- : 正在写入 /var/www/discourse/public/assets/service-worker-1c2f90c0e9ecfcf748d58ed6c37a510b3cd246299fcf
a5917a060293f1affb92.js                                                                                                                              
I, [2024-07-03T15:34:03.568027 #1728]  INFO -- : 正在写入 /var/www/discourse/public/assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e
78722e6f99d3656137.js                                                                                                                                
I, [2024-07-03T15:34:03.569522 #1728]  INFO -- : 正在写入 /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428d
cfd680205516fe211700a71c7adb5cbcf4df2cc5.js                                                                                                          
I, [2024-07-03T15:34:04.079476 #1728]  INFO -- : 正在写入 /var/www/discourse/public/assets/locales/ar-583c921ae692b1e7c988997efcba99e6b41b62572682166e
2c62bae0caeaab2b.js                                                                                                                                  
I, [2024-07-03T15:34:04.373049 #1728]  INFO -- : 正在写入 /var/www/discourse/public/assets/locales/be-ee1a0dd42713e1ca29dbacea5dcde76c51a441cb634c5d61
7ba4b20bb7ef5b05.js                                                                                                                                  
rake 命令执行失败!                                                                                                                                        
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-03T15:34:04.978774 #1]  INFO -- : 正在检查“Add(back) Category Colmn (TH)”的“default”... 已是最新版本                                   
正在检查“* Official: discourse-placeholder-theme-component (JP)”的“default”... 已是最新版本                                                        
正在检查“* Discourse Easy Footer (Official)”的“default”... 已是最新版本                                                                            
正在检查“discourse-user-field-prompt”的“default”... 已是最新版本                                                                                   
正在检查“* Rotate Global Banner(JP)”的“default”... 已是最新版本                                     
正在检查“Guest Gate Theme Component”的“default”... 已是最新版本                                                                                    
正在检查“* Official: discourse-search-banner”的“default”... 已是最新版本                                                                           
正在检查“* Official: Header submenus”的“default”... 已是最新版本                                                                                   
正在检查“* Auto linkify words (official)”的“default”... 已是最新版本                                                                               
正在检查“* Official: New PM Dropdown Button (KED)”的“default”... 已是最新版本                                                                      
正在检查“Sidebar Theme Toggle”的“default”... 已是最新版本                                                                                          
正在下载 MaxMindDB...                                                                                                                             
                                                                                                                                                     
                                                                                                                                                     
                                                                                                                                                     
失败                                                                                                                                               
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' 执行失败,返回
状态码为 #<Process::Status: pid 1726 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 bund
le exec rake themes:update assets:precompile'"]}
引导过程因退出代码 1 而失败
** 引导失败 ** 请向上滚动查看更早的错误信息,可能不止一条。
./discourse-doctor 可能有助于诊断问题。

随后在注释掉 MaxMind 密钥和 ID 后重新构建,操作成功。

为什么这件事如此困难?

以下是来自 MaxMind 的限额说明:

我不太清楚我怎么会触碰到这些限制,但除了他们服务器出现偶发性停机外,这似乎是唯一的解释?

1 个赞

对我来说,这个限制在我每天重建服务器超过一次时就会触发。
我还会收到一封开头如下的电子邮件(重点是我自己加的)

所以显然还有一个每个 IP 的限制。

4 个赞

这非常有帮助。我从未见过那封邮件。

我或许能做些什么来阻止单个 IP 上的多个服务器出现这种情况,但无法在一天内重建两次似乎是个挑战。我想缓存代理是我唯一能想到的办法。

我很乐意付钱给他们解决这个问题,但看不到如何操作。

1 个赞

但是,这与速率限制无关,因为在我构建完镜像后,我转到 /var/www/discourse/config/discourse.conf 中设置了值,并运行了 rake 任务,它就能够正常下载数据库。

数据库可以存储在持久化存储中吗?

数据库可以在镜像启动后才下载吗?

1 个赞

@JammyDodger 自最新版本发布以来,您是否能够使用 Maxmind 进行构建?@RGJ – 您遇到过什么麻烦吗?

我认为我尝试过的使用 maxmind 的网站都没有成功。昨天我能够通过 rake 任务下载数据库的那个网站,是在我进入容器并编辑了导致 bootstrap 失败的相同设置的配置之后。

关于 Maxmind 失败的其他主题也有好几个。

前几天,即使使用了 Maxmind 账户 ID,我的重建也失败了,但紧随其后的第二次重建却成功了。

1 个赞

我们没有任何问题(但我们正在使用自己的部署系统)。

我刚刚试了一下,可以从同一个 IP 检索文件 10 次(然后我就停止尝试了)。

所以我的“修复”以防止错误导致重建失败也失效了。

所以这将非常难以调试。

我收到了同样的电子邮件(以及同样的问题),是在将一些论坛迁移到新服务器之后——所以我同意 OP 的观点,也许可以显示一个重建的选项,或者在重建开始之前尝试获取数据库,让我们选择“重试”或“不使用 maxmind 进行重建”。

2 个赞

就我所知,最近将要求使用 API 密钥 + 用户名而不是仅使用 API 密钥的更改也导致了我们的升级/重建失败,造成了几天的停机时间。

同意其他人所说的,在 app.yml 中禁用/注释掉 >> 重建 = 解决了问题。我们还没有重新启用,因为我们正在等待任何可能的修复。

您是否还记得重建失败时的错误消息?

1 个赞