¿Qué significa el código errno 35 (EDEADLK) en Linux?

 
También puede significar:
ConstanteTipoSO
KERN_INVALID_SECURITYRetorno del kernel de macOSmacOS
ippStsDoubleSizeEstado de Intel IPPCualquiera
EAGAINerrnomacOS
ENOMSGerrnoSolaris
FAT_FILE_SYSTEMCódigo BSODWindows
Anterior Siguiente
ERANGE EAGAIN

EDEADLK

Qué significa EDEADLK

EDEADLK significa que el subsistema de locks detectó que conceder una espera bloqueante crearía un ciclo de deadlock. Puede aparecer con record locks POSIX y algunas API de mutex cuando el mismo hilo intenta adquirir de forma incompatible un lock que ya posee.

Es información valiosa porque el proceso sigue ejecutándose y puede registrar el grafo de locks. No debe tratarse como un fallo temporal que se soluciona con un retry inmediato: repetir el mismo orden de adquisición reproduce la condición.

Qué comprobar

  • Registra todos los locks ya poseídos, el objeto/rango solicitado y si la petición era bloqueante.
  • Define un orden global para locks que puedan adquirirse juntos, incluidos filesystem, IPC y capas de aplicación.
  • Evita mantener un lock de bajo nivel mientras llamas código que puede adquirir locks de nivel superior o ejecutar callbacks.
  • Usa timeout/cancelación solo como contención; corrige el orden o propiedad que hace posible el ciclo.

Referencias técnicas


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