¿Qué significa el código errno 90 (EMSGSIZE) en Linux?

 
También puede significar:
ConstanteTipoSO
EIDRMerrnomacOS
ELOOPerrnoSolaris
CRITICAL_SERVICE_FAILEDCódigo BSODWindows
Anterior Siguiente
ENOSYS EIDRM

EMSGSIZE

Qué significa EMSGSIZE

EMSGSIZE significa que el mensaje no cabe en una operación que conserva límites de mensaje. En Linux, si el protocolo subyacente no puede transmitirlo de forma atómica, el envío falla y ese mensaje no se acepta. Es típico de sockets de datagramas o orientados a registros, no de un stream TCP normal.

El límite útil no depende solo del payload: familia, cabeceras de protocolo, datos auxiliares y MTU del camino pueden influir. Si la aplicación maneja registros grandes, debe definir fragmentación/reensamblado a nivel de aplicación o elegir un transporte de stream cuando esa semántica sea la adecuada.

Qué comprobar

  • Registra tipo de socket, familia, número de bytes y datos de control incluidos en sendmsg().
  • Para UDP y protocolos similares, prueba el tamaño efectivo en el camino real y no solo en loopback.
  • No confíes en que todas las redes fragmentarán automáticamente datagramas grandes de forma utilizable.
  • Distingue este fallo del estado de aplicación: el kernel rechazó este envío, pero tu protocolo puede tener mensajes anteriores todavía pendientes.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.