Ошибка сети при загрузке резервной копии

Мой со-админ сказал, что не смог скачать резервную копию из полученного письма, так как загрузка прервалась примерно на 50%.

Я попробовал и столкнулся с той же проблемой. Скачивание архива работает нормально, пока не прерывается с сообщением «Ошибка — сетевая ошибка».
Попытка возобновить загрузку в Chrome возвращает «Ошибка — неизвестная ошибка сервера». В прошлый раз, когда я скачивал резервные копии с этого сервера (несколько месяцев назад), проблем не возникало. (это ожидаемо)

Есть какие-то идеи?

редакция, дополнительная информация:

Шаги для воспроизведения:

  1. Скачайте резервную копию по ссылке из письма
  2. Загрузка должна прерваться в какой-то момент

Привет,

Я соадминистратор Canapin :slight_smile:

При попытке возобновить загрузку в Chrome появляется ошибка «Failed - Unknown server error». В прошлый раз, когда я скачивал резервные копии с этого сервера (несколько месяцев назад), проблем не было.

Мне интересно, связано ли это с одноразовой ссылкой. С одной и той же ссылкой нельзя скачать резервную копию дважды. Поэтому, если загрузка не удалась с первого раза, попытка возобновления, скорее всего, прерывается самим Discourse.

1 лайк

Думаю, вам нужно изменить способ загрузки резервной копии.

1 лайк

Ну, конечно, есть и другие способы загрузки резервных копий, но я бы предпочел найти причину и исправить именно эту проблему :smile:

1 лайк

Скорее всего, это так, но это не единственная проблема, препятствующая полной загрузке резервной копии через веб-браузер.

В качестве обновления: форум был перенесён на другой сервер (по несвязанным причинам), но проблема сохраняется. Загрузка резервной копии (3,3 ГБ) всегда завершается ошибкой.

Я пытался скачать резервную копию с другого форума и столкнулся с той же проблемой.

Может кто-нибудь попробовать воспроизвести это на своём экземпляре? На обоих сайтах загрузка завершается неудачей через 30 секунд.

Переношу это в bug, так как я уверен, что проблема не только у меня.

Я сталкиваюсь с этой же проблемой уже более недели. За это время я дважды полностью обновил систему, но проблема сохраняется. Самостоятельный хостинг на IONOS. Размер резервной копии 1,5 ГБ.

2 лайка

Я отправил PR для решения этой проблемы, увеличив таймауты Nginx специально для /admin/backups/, что должно помочь предотвратить обрывы со ошибкой «Failed – Network error» во время загрузки больших файлов:

1 лайк

Только что попробовал снова. Всё ещё не удаётся на 1 ГБ

1 лайк

Это слишком рискованно, так как может привести к непреднамеренным атакам типа «отказ в обслуживании».

В этом месте следует использовать sendfile, и nginx должен обрабатывать это без необходимости проксирования.

1 лайк

Полностью обновлено до версии 2025.12.0-latest, проблема сохраняется.

Редактирование: Я могу скачивать резервные копии через WinSCP или аналогичные инструменты, но было бы неплохо, если бы всё работало как заявлено, и ссылка из письма + загрузка через браузер завершались успешно.

ИИ, вероятно, ошибается, но также рекомендует увеличить параметр: DISCOURSE_NGINX_PROXY_READ_TIMEOUT: 600, чтобы решить эту проблему.

1 лайк

У меня тоже так. Размер резервной копии 13 ГБ (мое последняя полная резервная копия перед переносом всего медиа на S3, чтобы никто не начал жаловаться!)

1 лайк

Вау! Для такого размера определённо лучше использовать SSH, а не веб-браузер.

Независимо от того, какой способ выполнения чего-либо считается правильным, мы просто хотим обратить внимание на то, что полезная встроенная функция в данный момент не работает :slight_smile:

2 лайка

Я был саркастичен

однако после включения функции secure-media приведенный ниже скрипт на Python перестанет работать

Может, стоит добавить подсказку для администратора о расположении файла резервной копии, на случай если он захочет скачать его через клиент?

Без предыдущего сообщения от @Ethsim2 я бы его не нашёл.

/var/discourse/shared/standalone/backups/default/your_backup_filename.tar.gz

Кроме того, эта кнопка вводит в заблуждение — её лучше назвать «Отправить ссылку для скачивания на email»

Оно не знает. Оно не может знать. Это зависит от вашей конфигурации Docker в файле yml. Обычно это в standalone, но может быть и в web_only, а может быть и где угодно в файловой системе.

Хотя это технически верно, я не припомню, чтобы кто-то ещё выражал подобное беспокойство за последнее десятилетие. Вам она кажется очень вводящей в заблуждение? Вы можете изменить её на своём собственном сайте, если считаете, что это поможет.

2 лайка