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
다른 Dell 사용자에게 질문에 대한 답변 찾기
지원 서비스
디바이스에 지원 서비스가 적용되는지 확인하십시오.