chiark / gitweb /
core: Implement timeout based umount/remount limit
authorKyle Walker <kwalker@redhat.com>
Wed, 13 Dec 2017 17:49:26 +0000 (12:49 -0500)
committerSven Eden <yamakuzure@gmx.net>
Wed, 30 May 2018 05:49:36 +0000 (07:49 +0200)
commitd4a60be201f9f21577ab6a43f55ff38fbee1c46f
tree299cf71698017cea66655d06796bec92fedd2e3e
parent2205140c2dca028beb4870267b98bd6c76d07385
core: Implement timeout based umount/remount limit

Remount, and subsequent umount, attempts can hang for inaccessible network
based mount points. This can leave a system in a hard hang state that
requires a hard reset in order to recover. This change moves the remount,
and umount attempts into separate child processes. The remount and umount
operations will block for up to 90 seconds (DEFAULT_TIMEOUT_USEC). Should
those waits fail, the parent will issue a SIGKILL to the child and continue
with the shutdown efforts.

In addition, instead of only reporting some additional errors on the final
attempt, failures are reported as they occur.
src/basic/process-util.c
src/basic/process-util.h