Проект Dynare использует форум на базе Discourse, развернутый на официальном Docker-образе. Основной тип используемых файлов — текстовые файлы в кодировке ASCII с расширением .mod (от англ. «model»). Примерно с месяца назад пользователи случайным образом (в ≈50% случаев) сталкиваются с проблемами при загрузке файлов именно этого типа (другие типы файлов загружаются без проблем). Загрузка просто зависает:
Загрузка того же содержимого с расширением .txt или в архиве ZIP работает корректно. К сожалению, администраторам не удалось воспроизвести проблему, даже при имитации действий затронутых пользователей.
Мы предполагаем, что проблема связана с попыткой конвертации файлов, поскольку Discourse, похоже, пытается обработать файл .mod как медиафайл. Попытка загрузить реальный видеофайл формата .mod (поддерживаемый, например, VideoLAN) приводит к появлению сообщения об ошибке:
/var/www/discourse/lib/discourse.rb:137:in `exec': An error happened when converting from PNG to JPG
Это сообщение появляется даже в том случае, если настройка png to jpg quality установлена на отключение конвертации.
Просто странная идея, даже не входящая в число приоритетных, но то, что вы заметили, навело на эту мысль.
Если администраторы имитируют действия пользователя, они, вероятно, не используют тот же маршрут от клиентской машины к серверу. Возможно, здесь задействован такой сервис, как Cloudflare.
Спасибо. Сервер использует DNS-серверы Cloudflare. Однако я сомневаюсь, что это влияет на наш экземпляр Discourse, так как он работает в собственном контейнере и, следовательно, использует DNS-серверы, настроенные разработчиками Discourse.
Спасибо, что уделили этому внимание. В целом, похоже, это происходит случайно. Не знаю, возникает ли проблема последовательно у определённой группы пользователей и полностью отсутствует у других. Но пользователи, столкнувшиеся с проблемой, как правило, отказываются от попыток и вместо этого просто вставляют содержимое файла в виде текста. Так что, возможно, дело именно в этом.