enumerar los objetos del depósito de S3 se repite infinitamente mediante la API ListObjects o ListObjectsV2

摘要: La aplicación S3 o s3cmd utilizan listobject o listobjectv2 de la API de S3 para consultar objetos del depósito de S3; en algunos casos extremos, Powerscale OneFS s3 devuelve un resultado incorrecto si dirCache está allí, pero no cumple con la solicitud, la aplicación S3 se bloquea debido a que los objetos de la lista alcanzan un bucle infinito. ...

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

症状

La aplicación S3 simplemente se bloquea debido a que no se puede completar la enumeración de un depósito.
El depósito S3cmd ls obtiene repetidamente los mismos objetos devueltos en una lista paginada.

原因

Esto podría llegar a un error de caché s3 # PSCALE-217613. 
 
Si el cliente solicita ListObjects con una entrada máxima = 1000, internamente obtenemos 10 000 entradas (si el directorio es muy amplio) y devolvemos 1000 de ellas al cliente, luego reutilizamos las 9000 restantes para futuras solicitudes. En la siguiente solicitud, si hay una caché, y todavía hay archivos en el directorio que aún no se devuelven al cliente, y la caché actual no tiene suficiente entrada para cumplir con la solicitud, encontramos un error y devolvemos un resultado incorrecto.

解决方案

El equipo de ingeniería está trabajando en la corrección permanente y el parche de RUP se lanzará una vez que esté listo. 
La solución alternativa actual es configurar s3 ls DIR_CACHE_TTL a 0 temporalmente: 
# isi_for_array -X  "/usr/likewise/bin/lwsm inject s3 s3_ls_set_dir_cache_ttl on 0"

En caso de que se reinicie el proceso de S3 o un nodo, vuelva a aplicar la solución alternativa en el nodo, ya que se revirtió al valor predeterminado de una hora cuando se reinició S3. 
Para desactivar el modo de apagado manual 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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。