| Previous | Next |
| ENETDOWN | ENETUNREACH |
ENOTRECOVERABLE
ENOTRECOVERABLE is meaningful in the robust-mutex model. It says that the lock's protected state cannot safely be trusted or repaired after an earlier owner died while holding the mutex.
The key event normally occurred earlier: a new owner acquired a robust mutex with EOWNERDEAD and had the opportunity to restore consistency. If that owner unlocks the mutex without declaring the protected state consistent, later lock attempts fail with ENOTRECOVERABLE. Retrying the lock will not repair the state.
Recovery must be deliberate
- Stop using the protected shared state until its integrity can be assessed.
- Choose a documented recovery action: rebuild the state, restore it from a transaction log or snapshot, or take the subsystem out of service.
- Do not replace a robust-mutex recovery path with a blind retry loop; it can expose partially updated data.
The UCRT definition makes the POSIX name available to Windows builds, but a Win32 mutex or critical section does not automatically acquire POSIX robust-mutex semantics. Determine which portability runtime or synchronization abstraction returned the value.
References
Looking for a different code? Search another status or error code.