API ListObjects 또는 ListObjectsV2를 사용하여 S3 버킷 객체 무한 루프 나열
摘要: S3 앱 또는 s3cmd가 S3 API listobject 또는 listobjectv2를 사용하여 s3 버킷에서 오브젝트를 쿼리합니다. 경우에 따라 dirCache가 있지만 요청을 이행하지 않는 경우 Powerscale OneFS s3가 잘못된 결과를 반환합니다. 목록 오브젝트가 무한 루프에 도달하여 S3 앱이 중단됩니다.
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
버킷을 완료할 수 없는 목록으로 인해 S3 앱이 중단됩니다.
S3cmd ls 버킷은 페이지가 매겨진 목록에서 반환된 동일한 오브젝트를 반복적으로 가져옵니다.
S3cmd ls 버킷은 페이지가 매겨진 목록에서 반환된 동일한 오브젝트를 반복적으로 가져옵니다.
原因
이로 인해 s3 캐시 버그# PSCALE-217613이 발생할 수 있습니다.
클라이언트가 최대 항목 = 1000 인 ListObjects를 요청하면 내부적으로 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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。