使用 API ListObjects 或 ListObjectsV2 列出 S3 存储区对象无限循环
Summary: S3 应用程序或 s3cmd 使用 S3 API listobject 或 listobjectv2 从 s3 存储区查询对象,在某些极端情况下,如果 dirCache 存在但未满足请求,则 Powerscale OneFS s3 将返回错误结果,S3 应用程序会因列表对象命中无限循环而挂起。
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
S3 应用程序只是由于列出存储桶而挂起,无法完成。
S3cmd ls 存储桶重复获取分页列表中返回的相同对象。
S3cmd ls 存储桶重复获取分页列表中返回的相同对象。
Cause
这可能会遇到 s3 缓存错误# PSCALE-217613。
如果客户端请求最大条目 = 1000 的 ListObjects,则在内部我们获得 10,000 个条目(如果目录非常宽),并将其中的 1000 个返回给客户端,然后重复使用剩余的 9000 个用于将来的请求。在下一个请求中,如果存在缓存,并且目录下仍有尚未返回到客户端的文件,并且当前缓存没有足够的条目来满足请求,我们将遇到错误并返回错误的结果。
Resolution
工程部门正在研究永久修复,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"
Affected Products
Isilon, PowerScaleArticle Properties
Article Number: 000223936
Article Type: Solution
Last Modified: 11 Jun 2024
Version: 3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.