La ricostruzione fallisce sempre quando si esaurisce il limite giornaliero di MAXMIND

La ricostruzione fallisce sempre quando il limite giornaliero è esaurito. Penso che sarebbe bene risolvere questo problema perché ho perso 2 giorni e ho configurato un server due volte finché non ho capito cosa causava questo problema. Forse non sono molto intelligente :slight_smile:

Penso che dovresti saltare questo processo e continuare a ricreare quando si esaurisce il limite giornaliero.

4 Mi Piace

Sì. È un grosso problema che un errore con MAXMIND causi il fallimento di una ricostruzione. Immagino che sul loro hosting debbano in qualche modo condividere il db tra le istanze.

Non ero a conoscenza di un limite giornaliero, ma ciò spiega certamente gli errori spurii che ho visto. L’unica soluzione è disabilitare maxmind per eseguire una ricostruzione.

Ho esaminato il codice un paio di volte per cercare di trovare una soluzione, ma non l’ho ancora fatto. Deve essere una correzione di 1-3 righe.

Dato che hai finalmente identificato che il problema è il loro limite di frequenza, sto cambiando questo in un :bug:

5 Mi Piace

Disabilito MAXMIND e ricompilo, e funziona. Tuttavia, volevo segnalarlo perché pensavo potesse succedere anche ad altri. Grazie per il tuo interesse, buona fortuna.

2 Mi Piace

Ecco una soluzione banale, ma probabilmente efficace, per questo problema:

Dato che non so esattamente come causare il problema, non è facile testare il codice, ma dovrebbe funzionare.

1 Mi Piace

Farò del lavoro stasera e, se vedrò informazioni sull’errore, aggiornerò l’argomento. Grazie per il tuo tempo, penso che sarà utile.

È stato fatto qualche studio su questo argomento? perché l’ho appena fatto e non si compila ancora quando MAXMIND è attivo e ho dovuto chiuderlo per compilare. Potrebbe aiutare, vedo anche un errore zlip.

NOTA:
Penso di aver inserito la chiave di licenza in modo errato in app.yml. L’ho corretto e ho ricompilato. Tuttavia, anche se è difettoso o il limite è esaurito, deve continuare a compilare senza dare errori.

1 Mi Piace

Per quell’errore, hai anche aggiunto DISCOURSE_MAXMIND_ACCOUNT_ID al tuo app.yml?

2 Mi Piace

Puoi condividere tutti i log?

1 Mi Piace

Se dovessi riscontrare nuovamente questo errore, condividerò i log dell’errore, ma è lo stesso del link che mi hai dato.

D’altra parte, quando la chiave non è corretta, la compilazione genera un errore. Quindi, sarebbe una buona idea che questa funzionalità continuasse e desse un avviso se ci fosse una chiave o un ID errato.

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 Mi Piace

Per me quel limite si attiva ogni volta che ricostruisco un server più di una volta al giorno.
Ricevo anche un’email che inizia così (enfasi mia)

Quindi apparentemente c’è anche un limite per IP.

4 Mi Piace

È di grande aiuto. Non ho mai visto quell’email.

Potrei essere in grado di fare qualcosa per evitare che i server multipli su un singolo IP facciano ciò, ma non essere in grado di ricostruire due volte al giorno sembra una sfida. Immagino che un proxy di caching sia l’unica cosa che mi viene in mente.

Sarei felice di pagare loro una certa somma di denaro per risolvere questo problema, ma non vedo un modo per farlo.

1 Mi Piace

Ma è qualcosa di diverso dai limiti di frequenza perché dopo aver creato l’immagine sono andato a impostare i valori in /var/www/discourse/config/discourse.conf e ho eseguito il rake task e ha scaricato il database senza problemi.

Il database potrebbe risiedere in uno storage persistente?

Il database potrebbe essere scaricato solo dopo l’avvio dell’immagine?

1 Mi Piace

@JammyDodger sei riuscito a creare con Maxmind dopo l’ultima release? @RGJ – hai avuto problemi?

Non credo che nessun sito che ho provato con maxmind abbia funzionato. E quello che ho fatto ieri è stato in grado di scaricare il database con il rake task dopo che sono entrato e ho modificato la configurazione all’interno del container con le stesse impostazioni che hanno causato il fallimento del bootstrap.

Ci sono stati diversi altri argomenti sui fallimenti dovuti a Maxmind.

Ho avuto un errore di ricompilazione l’altro giorno anche con l’ID account Maxmind, ma un secondo subito dopo è andato a buon fine.

1 Mi Piace

Non abbiamo riscontrato alcun problema, (ma stiamo utilizzando il nostro sistema di deployment).

Ho appena provato e riesco a recuperare il file 10 volte dallo stesso IP (e poi ho smesso di provarci).

Quindi la mia “correzione” per evitare che un errore interrompesse la ricostruzione è fallita.

Quindi sarà molto difficile eseguire il debug.

Ho ricevuto la stessa email (e lo stesso problema) dopo aver spostato alcuni forum su un nuovo server, quindi concordo con l’OP, forse visualizzare un’opzione per ricostruire, o, provare a recuperare il db prima che inizi la ricostruzione dandoci l’opzione di ‘riprova’ o ‘ricostruisci senza maxmind’.

2 Mi Piace

per quanto mi riguarda, la recente modifica che richiede la chiave API + nome utente invece della sola chiave API ha causato anche il fallimento del nostro aggiornamento/ricostruzione, provocando alcuni giorni di inattività.

D’accordo con altri che disabilitare/commentare in app.yml >> ricostruire = l’ha risolto. Non l’abbiamo ancora riattivato poiché stiamo aspettando qualsiasi correzione possa essere questa.

Hai per caso il messaggio di errore di dove è fallita la ricostruzione?

1 Mi Piace