# Сбой загрузки резервной копии в S3 на Scaleway (многопоточная загрузка)

**URL:** https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764
**Category:** Support
**Created:** [30.Январь.2021 10:53:15 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764 "2021-01-30T10:53:15Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![markersocial](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markersocial/32/170136_2.png) [@markersocial](https://meta.discourse.org/u/markersocial)
#### Post date: [30.Январь.2021 10:53:16 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/1 "2021-01-30T10:53:16Z")

</div>

Запущено на версии 2.6.1 stable с клоном S3 (Scaleway). Вот лог:

```
[2021-01-30 09:52:59] Загрузка архива...
[2021-01-30 09:55:36] ИСКЛЮЧЕНИЕ: не удалось прервать многокомпонентную загрузку: указанный многокомпонентный процесс загрузки не существует. ID загрузки может быть некорректным, либо многокомпонентная загрузка уже была прервана или завершена.
[2021-01-30 09:55:36] /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/multipart_file_uploader.rb:94:in `rescue in abort_upload'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/multipart_file_uploader.rb:82:in `abort_upload'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/multipart_file_uploader.rb:78:in `upload_parts'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/multipart_file_uploader.rb:51:in `upload'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/file_uploader.rb:38:in `upload'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/aws-sdk-s3-1.83.2/lib/aws-sdk-s3/customizations/object.rb:342:in `upload_file'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:39:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:301:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:34:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2021-01-30 09:55:36] Удаление старых резервных копий...
[2021-01-30 09:55:36] Очистка временных файлов...
[2021-01-30 09:55:36] Удаление архива из локального хранилища...
[2021-01-30 09:55:36] Удаление остатков '.tar'...
[2021-01-30 09:55:36] Пометка резервной копии как завершенной...
[2021-01-30 09:55:36] Обновление статистики диска...

```

У меня такая же конфигурация на нескольких других серверах, и резервное копирование работает корректно (хотя размеры резервных копий значительно меньше, поэтому многокомпонентная загрузка, скорее всего, не является причиной). Похоже, что они также поддерживают многокомпонентную загрузку: [Managing multipart uploads | Scaleway Documentation](https://www.scaleway.com/en/docs/s3-multipart-upload/), поэтому неясно, в чём проблема.

---

<div class="post-metadata">

### Author: ![Freez](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/freez/32/155627_2.png) [@Freez](https://meta.discourse.org/u/Freez)
#### Post date: [11.Февраль.2021 14:23:08 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/2 "2021-02-11T14:23:08Z")

</div>

У меня та же проблема с Scaleway S3 ☹

Мое первое резервное копирование не удалось 9 дней назад:

```plaintext
EXCEPTION: multipart upload failed:
Your request was not formed properly;
Your request was not formed properly

```

Затем каждые один-два дня:

```plaintext
EXCEPTION: failed to abort multipart upload:
The specified multipart upload does not exist.
The upload ID might be invalid, or
the multipart upload might have been aborted or completed.

```

@Falco, что мы можем сделать, чтобы понять, что происходит?  
Спасибо

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [11.Февраль.2021 14:26:29 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/3 "2021-02-11T14:26:29Z")

</div>

> [@Falco](#):
>
> Нет способа отключить это. Загрузка multipart должна работать, может, попробовать связаться с поддержкой Scaleway и попросить исправление?

Отвечал на это вчера. Свяжитесь с Scaleway.

---

<div class="post-metadata">

### Author: ![Freez](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/freez/32/155627_2.png) [@Freez](https://meta.discourse.org/u/Freez)
#### Post date: [19.Февраль.2021 16:33:16 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/4 "2021-02-19T16:33:16Z")

</div>

Готово.  
Но их поддержка требует больше информации 🙂  
Им нужен список частей, чтобы проверить, получаем ли мы ответ или сообщение об ошибке для каждой части.

Есть ли способ включить логирование (HTTP-запросы?) в aws gems?

Спасибо.

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [19.Февраль.2021 17:17:25 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/5 "2021-02-19T17:17:25Z")

</div>

Им повезло: так как Discourse с открытым исходным кодом, они могут точно увидеть, что происходит!

Стек вызовов указывает на ошибку в:

> [@markersocial](#):
>
> `/var/www/discourse/lib/backup_restore/s3_backup_store.rb:39:in `upload\_file’`

что соответствует ссылке:

> <https://github.com/discourse/discourse/blob/main/lib/backup_restore/s3_backup_store.rb#L39>

Это вызов метода в SDK:

> **[upload\_file(source, options = {}) {|response| ... } ⇒ Boolean - Class:...](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#upload_file-instance_method)**
>
> Uploads a file from disk to the current object in S3. | Class: Aws::S3::Object

Согласно документации, по умолчанию для файлов размером более 15 МБ используется многокомпонентная загрузка (MultiPart upload).

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

> <https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/lib/aws-sdk-s3/multipart_file_uploader.rb#L71-L80>

И ошибка возникает на строке 74.

---

<div class="post-metadata">

### Author: ![Freez](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/freez/32/155627_2.png) [@Freez](https://meta.discourse.org/u/Freez)
#### Post date: [16.Март.2021 17:35:38 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/6 "2021-03-16T17:35:38Z")

</div>

Снова работает, без каких-либо изменений 😬  
Теперь 7 из 10 успешны

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [16.Март.2021 17:50:40 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/7 "2021-03-16T17:50:40Z")

</div>

Отличные новости. Преимущество реализации в соответствии с _де-факто_ спецификацией S3 заключается в том, что они исправляют это на своей стороне, и нам не нужно вносить никаких изменений.

---

<div class="post-metadata">

### Author: ![markersocial](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/markersocial/32/170136_2.png) [@markersocial](https://meta.discourse.org/u/markersocial)
#### Post date: [18.Март.2021 08:07:52 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/8 "2021-03-18T08:07:52Z")

</div>

> [@Freez](#):
>
> Опять работает, без каких-либо изменений 😬  
> Теперь 7 из 10 успешных

К сожалению, у меня по-прежнему та же ошибка 😕  
Надеюсь, они просто еще не полностью развернули исправления.

---

<div class="post-metadata">

### Author: ![Freez](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/freez/32/155627_2.png) [@Freez](https://meta.discourse.org/u/Freez)
#### Post date: [23.Март.2021 09:20:30 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/9 "2021-03-23T09:20:30Z")

</div>

Процесс резервного копирования на 100% успешен!  
Проблема «закрыта» для меня.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [23.Март.2021 09:21:37 UTC](https://meta.discourse.org/t/backup-upload-to-s3-fails-on-scaleway-multipart-upload/177764/10 "2021-03-23T09:21:37Z")

</div>


