[Prisma Cloud Compute Edition] Las tareas de ECS Fargate finalizan con el código de salida 255 cuando se maneja mucho tráfico
725
Created On 07/31/24 08:21 AM - Last Modified 02/19/26 16:54 PM
Symptom
- Tienes defensores instalados en tus tareas de ECS Fargate
- Esas tareas defendidas, al manejar mayor tráfico, salen con el código 255
- El mismo tipo de implementación pero con menos tráfico no parece informar el mismo error
- Sin el defensor, las tareas funcionan bien incluso con mayor tráfico.
Environment
- Edición Prisma Cloud Compute
- Puerta de enlace de AWS ECS
Cause
- El tamaño máximo de los argumentos de la línea de comandos es de 128 kb de datos en la mayoría de los sistemas Linux (según el tamaño de la página de memoria). Consulte aquí: https://elixir.bootlin.com/linux/v4.15/source/include/uapi/linux/binfmts.h
- Cuando el argumento es mayor que este tamaño, el defensor no puede leer la cadena de argumento y cancela la ejecución (no puede encontrar el carácter NULL dentro del límite de tamaño):
failed to fetch execve arguments: failed to read argument: failed to find string in <ArgString>
- Entonces, el problema aquí es que la línea de comando del argumento es demasiado larga y alcanza el límite de 128 kb, y el defensor no puede procesar la ejecución como está diseñado.
- Dado que el defensor está limitado solo a 128 kb y la limitación no se puede cambiar en el defensor, la tarea falla.
Resolution
- Una posible solución alternativa aquí puede ser pasar el JSON codificado por otro archivo, de modo que la cadena de argumento pueda ser una ruta de archivo a ese JSON, haciéndolo mucho más corto.
- O busque otra solución para argumentos más cortos.
- Defender se reparará para eliminar esta limitación de 128 kb para el tamaño de los argumentos, ya que los sistemas Linux modernos pueden admitir argumentos de más de 2 MB, como se documenta aquí: https://man7.org/linux/man-pages/man2/execve.2.html