Сегодня мы заметили, что загрузка новых аватарок невероятно медленная, если вообще возможна. Также очень медленно загружаются крупные аватарки некоторых (но не всех) пользователей на всплывающих карточках пользователей или на полной странице профиля. Мы обновились до версии 2.5.0.beta2 (ae3220fb88), надеясь, что это поможет, но безрезультатно.
В https://discourse.example.org/logs мы видим следующее предупреждение при попытке загрузить новый файл аватарки через страницу профиля пользователя:
DistributedMutex(“upload_2_TEST.jpg”): удерживался слишком долго, ожидаемый максимум: 60 сек, потребовалось дополнительно 2 сек
/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'
В /logs также есть другие сообщения, которые, похоже, связаны с этой проблемой:
- [Предупреждение] DistributedMutex(“optimized_image_23_120_120”): удерживался слишком долго, ожидаемый максимум: 60 сек, потребовалось дополнительно 5 сек
- [Ошибка] ‘hijack uploads create’ всё ещё выполняется через 90 секунд на db default, возможно, этот процесс потребуется перезапустить!
Вот как выглядит интерфейс при попытке загрузить аватарку после истечения тайм-аута:
