We had a bug in our code where a dying process released shared memory (munmap) prior to exit. The process held ownership of a robust mutex within the shared memory, and because the address was unmapped, the robust_list wasn't able to set the appropriate flags.

The next attempt to lock the mutex, in another process, returned ESRCH.

Should ESRCH be caughtand converted to either a recoverable EOWNERDEAD or ENOTRECOVERABLE?