mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 15:00:12 +00:00
bd2a7530ad
When systemd tries to stop openafs-client.service during system shutdown, our 'umount /afs' will fail if someone else is accessing /afs. The openafs-client.service unit is then marked as deactivated (and failed), and the shutdown sequence proceeds. After all services have been stopped, systemd-shutdown tries to kill all remaining processes with SIGTERM and then SIGKILL, waiting DefaultTimeoutStopSec seconds (default: 90) for them to die. If there are unkillable processes running (for example, afsd), this results in at least a 3-minute delay. It's hard to make sure there are no processes accessing /afs during the shutdown sequence, since that could include processes outside of defined systemd units. So some processes may be shutting down in parallel with openafs-client.service, and so it's a race whether there are /afs-using processes when we try to umount /afs. To avoid the most common cases of this, retry our umount during openafs-client's ExecStop for $UMOUNT_TIMEOUT seconds (default: 30), to give other /afs-using processes a chance to go away. Only do this if the system is shutting down (according to 'systemctl is-system-running'), so users don't see a long delay running 'systemctl stop openafs-client' during normal system operation. Written in collaboration with cwills@sinenomine.net. Change-Id: I5755dbf4cddf4204ed6836f9f4f21c00133fcb39 Reviewed-on: https://gerrit.openafs.org/15633 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> |
||
---|---|---|
build-tools | ||
doc | ||
src | ||
tests | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
.splintrc | ||
acinclude.m4 | ||
CODING | ||
configure-libafs.ac | ||
configure.ac | ||
CONTRIBUTING | ||
INSTALL | ||
libafsdep | ||
LICENSE | ||
Makefile-libafs.in | ||
Makefile.in | ||
NEWS | ||
NTMakefile | ||
README | ||
README-WINDOWS | ||
regen.sh |
AFS is a distributed file system that enables users to share and access all of the files stored in a network of computers as easily as they access the files stored on their local machines. The file system is called distributed for this exact reason: files can reside on many different machines, but are available to users on every machine. OpenAFS 1.0 was originally released by IBM under the terms of the IBM Public License 1.0 (IPL10). For details on IPL10 see the LICENSE file in this directory. The current OpenAFS distribution is licensed under a combination of the IPL10 and many other licenses as granted by the relevant copyright holders. The LICENSE file in this directory contains more details, thought it is not a comprehensive statement. See INSTALL for information about building and installing OpenAFS on various platforms. See CODING for developer information and guidelines. See NEWS for recent changes to OpenAFS.