wyświetlanie listy obiektów zasobnika S3 zapętla się w nieskończoność przy użyciu interfejsu API ListObjects lub ListObjectsV2

摘要: Aplikacja S3 lub s3cmd używa interfejsu API S3 listobject lub listobjectv2 do wykonywania zapytań dotyczących obiektów z zasobnika s3, w niektórych przypadkach Powerscale OneFS s3 zwraca nieprawidłowy wynik, jeśli dirCache istnieje, ale nie spełnia żądania, aplikacja S3 zawiesza się, ponieważ obiekty listy trafiają w nieskończoną pętlę. ...

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

Aplikacja S3 zawiesza się z powodu ukończenia listy zasobników.
S3cmd ls bucket wielokrotnie zwraca te same obiekty na liście podzielonej na strony.

原因

Może to trafić błąd pamięci podręcznej s3# PSCALE-217613. 
 
Jeśli klient zażąda ListObjects z maksymalnym wpisem = 1000, wewnętrznie otrzymujemy 10 000 wpisów (jeśli katalog jest bardzo szeroki) i zwracamy 1000 z nich klientowi, a następnie ponownie używamy pozostałych 9000 do przyszłego żądania. Przy następnym żądaniu, jeśli istnieje pamięć podręczna, a w katalogu nadal znajdują się pliki, które nie zostały jeszcze zwrócone klientowi, a bieżąca pamięć podręczna nie ma wystarczającej liczby wpisów, aby spełnić żądanie, uderzamy w błąd i zwracamy nieprawidłowy wynik.

解决方案

Inżynierowie pracują nad trwałą poprawką, a poprawka RUP zostanie wydana, gdy będzie gotowa. 
Bieżące obejście polega na tymczasowym skonfigurowaniu s3 ls DIR_CACHE_TTL do 0: 
# isi_for_array -X  "/usr/likewise/bin/lwsm inject s3 s3_ls_set_dir_cache_ttl on 0"

W przypadku ponownego uruchomienia procesu s3 lub ponownego uruchomienia węzła należy ponownie zastosować obejście w węźle, ponieważ zostało ono przywrócone do wartości domyślnej 1 godziny po ponownym uruchomieniu s3. 
Aby wyłączyć ręczne 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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。