Rebuilding sempre falha quando o limite diário do MAXMIND é atingido

A reconstrução sempre falha quando o limite diário é esgotado. Acho que seria bom corrigir isso, pois perdi 2 dias e configurei um servidor duas vezes até descobrir o que causou esse problema. Talvez eu não seja muito esperto :slight_smile:

Acho que você deveria pular este processo e continuar a recriar quando o limite diário acabar.

4 curtidas

Sim. É um grande problema que um erro com MAXMIND cause a falha na reconstrução. Imagino que em sua hospedagem eles devam compartilhar o banco de dados entre instâncias de alguma forma.

Eu não sabia sobre um limite diário, mas isso certamente explica os erros espúrios que tenho visto. A única solução é desabilitar o maxmind para fazer uma reconstrução.

Eu olhei o código algumas vezes para tentar descobrir uma correção, mas ainda não o fiz. Deve ser uma correção de 1 a 3 linhas.

Como você finalmente identificou que o problema é a limitação de taxa deles, estou mudando isso para um :bug:

5 curtidas

Eu desabilito o MAXMIND e recompilo, e funciona. No entanto, eu queria relatar isso porque pensei que poderia acontecer com outros. Obrigado pelo seu interesse, boa sorte.

2 curtidas

Aqui está uma correção trivial, mas provavelmente eficaz para este problema:

Como não sei exatamente como causar o problema, não é fácil testar o código, mas ele deve funcionar.

1 curtida

Farei um trabalho esta noite e, se vir alguma informação sobre o erro, atualizarei o tópico. Obrigado pelo seu tempo, acho que será útil.

Algum estudo foi feito sobre este assunto? porque eu acabei de fazer e ainda não compila quando o MAXMIND está ativado e tive que desativá-lo para compilar. Pode ajudar, também vejo um erro zlip.

OBS:
Acho que digitei a chave de licença incorretamente em app.yml. Corrigi isso e compilei novamente. No entanto, mesmo que esteja com defeito ou o limite tenha sido esgotado, ele deve continuar compilando sem apresentar erros.

1 curtida

Para esse erro, você também tem o DISCOURSE_MAXMIND_ACCOUNT_ID adicionado ao seu app.yml?

2 curtidas

Você pode compartilhar os logs completos?

1 curtida

Se eu encontrar esse erro novamente, compartilharei os logs de erro, mas é o mesmo do link que você deu.

Por outro lado, quando a chave está incorreta, a compilação gera um erro. Portanto, seria uma boa ideia para esse recurso continuar e emitir um aviso se houver uma chave ou ID incorreto.

Well, it seems not to work with what I’m fairly certain is a valid maxmind key. I guess since I have several sites on the same IP all requesting the database I’m hitting rate limits?

...
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.

Subsequent rebuild with the Maxmind key and id commented out succeeds.

Why is this so hard?

So here’s the limit from

I’m not quite clear how I’d be hitting these limits, but it’s the only explanation other than spurious downtime on their servers?

1 curtida

Para mim, esse limite é acionado sempre que reconstruo um servidor mais de uma vez por dia.
Também recebo um e-mail que começa assim (ênfase minha)

Então, aparentemente, também há um limite por IP.

4 curtidas

Isso é uma grande ajuda. Eu nunca vi esse e-mail.

Eu talvez consiga fazer algo para impedir que múltiplos servidores em um único IP façam isso, mas não poder reconstruir duas vezes em um dia parece um desafio. Acho que um proxy de cache é a única coisa que consigo pensar.

Eu ficaria feliz em pagar a eles alguma quantia em dinheiro para que isso não seja um problema, mas não vejo uma maneira de fazer isso.

1 curtida

Mas é algo diferente dos limites de taxa porque, depois que construí a imagem, fui e defini os valores em /var/www/discourse/config/discourse.conf e executei a tarefa do rake e ele baixou o banco de dados perfeitamente.

O banco de dados poderia viver em armazenamento persistente?

O banco de dados poderia ser baixado somente após a inicialização da imagem?

1 curtida

@JammyDodger você conseguiu compilar com Maxmind desde o último lançamento? @RGJ – você teve algum problema?

Eu não acho que nenhum site que tentei com maxmind funcionou. E aquele que fiz ontem foi capaz de baixar o banco de dados com a tarefa rake depois que entrei e editei a configuração dentro do container com as mesmas configurações que causaram a falha do bootstrap.

Houve vários outros tópicos sobre falhas devido ao Maxmind.

Tive uma falha na reconstrução mesmo com o ID da conta Maxmind outro dia, mas uma segunda logo depois foi bem-sucedida.

1 curtida

Não tivemos nenhum problema, (mas estamos usando nosso próprio sistema de implantação).

Acabei de tentar e consigo recuperar o arquivo 10 vezes do mesmo IP (e depois parei de tentar).

Então minha “correção” para evitar que um erro mate a reconstrução falhou.

Então será muito difícil depurar isso.

Eu tive o mesmo e-mail (e problema) depois de mover alguns fóruns para um novo servidor - então concordo com o OP, talvez exibir uma opção para reconstruir, ou, tentar buscar o banco de dados antes que a reconstrução comece, nos dando a opção de ‘tentar novamente’ ou ‘reconstruir sem maxmind’.

2 curtidas

fwiw, a recente alteração para exigir chave de API + nome de usuário em vez de apenas chave de API também causou a falha em nossa atualização/reconstrução, resultando em alguns dias de inatividade.

Concordo com outros que desabilitar/comentar em app.yml >> reconstruir = corrigiu. Ainda não reativamos, pois estamos aguardando qualquer correção que possa ser feita.

Você por acaso tem a mensagem de erro de onde a reconstrução falhou?

1 curtida