Oggi abbiamo notato che è incredibilmente lento, se possibile, caricare nuove foto profilo. È anche estremamente lento caricare alcuni (ma non tutti) gli avatar più grandi degli utenti nelle schede utente a comparsa o nel profilo a pagina intera. Abbiamo aggiornato alla versione 2.5.0.beta2 (ae3220fb88) sperando che aiutasse, ma senza successo.
In https://discourse.example.org/logs vediamo il seguente tipo di avviso quando proviamo a caricare un nuovo file immagine per l’avatar tramite la pagina del profilo utente:
DistributedMutex(“upload_2_TEST.jpg”): mantenuto troppo a lungo, massimo previsto: 60 secondi, ha impiegato 2 secondi in più
/var/www/discourse/lib/distributed_mutex.rb:54:in `warn'
/var/www/discourse/lib/distributed_mutex.rb:37:in `ensure in block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:41:in `block in synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:29:in `synchronize'
/var/www/discourse/lib/distributed_mutex.rb:14:in `synchronize'
/var/www/discourse/lib/upload_creator.rb:37:in `create_for'
/var/www/discourse/app/controllers/uploads_controller.rb:217:in `create_upload'
/var/www/discourse/app/controllers/uploads_controller.rb:36:in `block in create'
/var/www/discourse/lib/hijack.rb:56:in `instance_eval'
/var/www/discourse/lib/hijack.rb:56:in `block in hijack'
/var/www/discourse/lib/scheduler/defer.rb:94:in `block in do_work'
rails_multisite-2.1.0/lib/rails_multisite/connection_management.rb:64:in `with_connection'
/var/www/discourse/lib/scheduler/defer.rb:89:in `do_work'
/var/www/discourse/lib/scheduler/defer.rb:79:in `block (2 levels) in start_thread'
Ci sono anche altri elementi in /logs che sembrano correlati:
- [Avviso] DistributedMutex(“optimized_image_23_120_120”): mantenuto troppo a lungo, massimo previsto: 60 secondi, ha impiegato 5 secondi in più
- [Errore] ‘hijack uploads create’ è ancora in esecuzione dopo 90 secondi su db default, questo processo potrebbe dover essere riavviato!
Ecco come appare l’interfaccia quando si tenta di caricare un’immagine per l’avatar, dopo il timeout finale:
