| 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.