listando loops de objetos de bucket do S3 infinitamente usando a API ListObjects ou ListObjectsV2

摘要: O aplicativo S3 ou s3cmd usa listobject ou listobjectv2 da API do S3 para consultar objetos do bucket do s3. Em alguns casos, o PowerScale OneFS s3 retornará um resultado incorreto se o dirCache estiver lá, mas não atender à solicitação, o aplicativo S3 travará porque os objetos da lista atingiram o loop infinito. ...

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

症状

O aplicativo S3 simplesmente trava porque a listagem de um bucket não pode ser concluída.
O bucket ls do S3cmd obtém repetidamente os mesmos objetos retornados em uma lista paginada.

原因

Isso pode atingir um bug de cache do s3# PSCALE-217613. 
 
Se o cliente solicitar ListObjects com entrada máxima = 1000, internamente obteremos 10.000 entradas (se o diretório for muito amplo) e retornaremos 1000 delas ao cliente, então reutilizaremos as 9000 restantes para solicitação futura. Na próxima solicitação, se houver um cache, e ainda houver arquivos no diretório que ainda não foram retornados ao cliente, e o cache atual não tiver entrada suficiente para atender à solicitação, acertamos um bug e retornaremos um resultado errado.

解决方案

A engenharia está trabalhando na correção permanente e o patch RUP será lançado assim que estiver pronto. 
A solução temporária atual é configurar s3 ls DIR_CACHE_TTL a 0 temporariamente: 
# isi_for_array -X  "/usr/likewise/bin/lwsm inject s3 s3_ls_set_dir_cache_ttl on 0"

Caso o processo do s3 seja reiniciado ou um nó seja reinicializado, aplique a solução temporária novamente no nó, já que ele foi revertido para o padrão de 1 hora quando o s3 foi reiniciado. 
Para desativar manualmente 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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。