бесконечное перечисление объектов контейнера S3 с помощью API ListObjects или ListObjectsV2
摘要: Приложение S3 или s3cmd использует объект списка или listobjectv2 API S3 для запроса объектов из корзины s3, в некоторых редких случаях Powerscale OneFS s3 возвращает неверный результат, если dirCache присутствует, но не выполняет запрос, приложение S3 зависает из-за того, что объекты списка попадают в бесконечный цикл. ...
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
Приложение S3 зависает из-за того, что не удается завершить перечисление контейнера.
S3cmd ls bucket многократно возвращает одни и те же объекты в списке с разбивкой на страницы.
S3cmd ls bucket многократно возвращает одни и те же объекты в списке с разбивкой на страницы.
原因
Это может привести к ошибке кэша s3 # PSCALE-217613.
Если клиент запрашивает ListObjects с max entry = 1000, то внутренне мы получаем 10 000 записей (если каталог очень широкий) и возвращаем 1000 из них клиенту, а затем повторно используем оставшиеся 9000 для будущего запроса. При следующем запросе, если есть кэш, а в каталоге еще есть файлы, которые еще не возвращены клиенту, а в текущем кэше недостаточно записей для выполнения запроса, мы сталкиваемся с ошибкой и возвращаем неверный результат.
解决方案
Инженерный отдел работает над окончательным исправлением, и патч RUP будет выпущен, как только он будет готов.
Текущее временное решение заключается в том, чтобы временно настроить s3 ls DIR_CACHE_TTL значение 0:
Текущее временное решение заключается в том, чтобы временно настроить s3 ls DIR_CACHE_TTL значение 0:
# isi_for_array -X "/usr/likewise/bin/lwsm inject s3 s3_ls_set_dir_cache_ttl on 0"
В случае перезапуска процесса s3 или перезагрузки узла снова примените временное решение к узлу, поскольку при перезапуске s3 оно было возвращено к значению по умолчанию 1 час.
Чтобы отключить вручную DIR_CACHE_TTL:
#isi_for_array -X "/usr/likewise/bin/lwsm inject s3 s3_ls_set_dir_cache_ttl off"
受影响的产品
Isilon, PowerScale文章属性
文章编号: 000223936
文章类型: Solution
上次修改时间: 11 6月 2024
版本: 3
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。