使用 API ListObjects 或 ListObjectsV2 無限列出 S3 儲存器物件循環

Summary: S3 應用程式或 s3cmd 使用 S3 API listobject 或 listobjectv2 從 s3 貯體查詢物件,在某些極端情況下,Powerscale OneFS s3 會傳回錯誤的結果 如果 dirCache 存在但未履行要求,則 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 儲存桶會重複取得分頁清單中傳回的相同物件。

Cause

這可能會發生 s3 快取錯誤# PSCALE-217613。 
 
如果用戶端請求最大條目 = 1000 的 ListObjects,則在內部我們獲得 10,000 個條目(如果目錄非常寬)並將其中的 1000 個返回給用戶端,然後重複使用剩餘的 9000 個用於將來的請求。在下一個請求中,如果有緩存,並且目錄下仍有檔尚未返回到客戶端,並且當前緩存沒有足夠的條目來滿足請求,我們遇到了一個錯誤並返回錯誤的結果。

Resolution

工程部門正在開發永久修正程式,RUP 修補程式將在準備就緒後發佈。
目前的因應措施是將 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, PowerScale
Article 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.