Los clientes de S3 informan fallas de análisis de XML o UTF-8 no válido debido a una codificación de URL no compatible
Summary: Producto afectado: PowerScale OneFS (versiones anteriores a 9.13) Las aplicaciones cliente de S3 que funcionan en un clúster de PowerScale OneFS informan excepciones de análisis de XML o "UTF-8 no válido" cuando realizan solicitudes de "ListObjects" o "ListObjectsV2" (depósito GET). Este problema afecta a entornos en los que los nombres de archivo ASCII estándar contienen caracteres especiales, sobre todo el signo de porcentaje ('%'). ...
Symptoms
Producto afectado: PowerScale OneFS (versiones anteriores a 9.13)
Informes de aplicaciones cliente de S3 que funcionan en un clúster de PowerScale OneFS "invalid UTF-8" o las excepciones de análisis de XML cuando se realiza 'ListObjects' o 'ListObjectsV2' (categoría GET). Este problema afecta a entornos en los que los nombres de archivo ASCII estándar contienen caracteres especiales, sobre todo el signo de porcentaje ('%').
Cause
La causa es una falla de decodificación de URL que actúa como un error UTF-8.
Cuando una aplicación cliente de S3 solicita `encoding-type=url`, espera que todas las claves de objeto de la carga XML devuelta estén codificadas en URL (por ejemplo, el carácter '%' debe escaparse a '%25'). Sin embargo, OneFS no es compatible con el parámetro "encoding-type=url" para `GET Bucket (List Objects)` solicitudes, y lo ignora en silencio.
Debido a que se ignora el parámetro, OneFS devuelve el nombre de archivo sin formato (p. ej., fred%jim) en la respuesta XML. El analizador XML del cliente intenta decodificar la cadena mediante URL, malinterpreta los caracteres inmediatamente después del símbolo '%' sin formato como un valor hexadecimal de bytes y se bloquea. Este bloqueo alerta a
Resolution
Seguimiento y resolución en PSCALE-8898 (problema 264794)
Para resolver este problema de forma permanente:
- Actualizar: Actualice el clúster a OneFS 9.13 o una versión más reciente, en la que se implementó de forma nativa la compatibilidad con "encoding-type=url".
- Solicitud de backport:** solicitado para (OneFS 9.7.1 y 9.10.1).
Solución alternativa
- Si no se puede aplicar un parche inmediato, se debe cambiar el nombre de los archivos que contienen el carácter "%" mediante un protocolo alternativo (SMB, NFS o CLI local) para eliminar el carácter especial, o se debe volver a configurar la aplicación cliente para que no solicite codificación de URL.