Skip to content

Commit

Permalink
tasks/cephfs: time out on ceph-fuses that don't die
Browse files Browse the repository at this point in the history
For cases where we have e.g. poked the fuse abort
file for a process, but it's still not dying.  Because
this is a special class of error (unlike e.g. when
we force umount something because the network is gone)
raise the error instead of trying again to kill
the client.

Fixes: #11835
Signed-off-by: John Spray <john.spray@redhat.com>
  • Loading branch information
John Spray committed Jun 10, 2015
1 parent eabe37f commit 07eb03a
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion tasks/cephfs/fuse_mount.py
Expand Up @@ -7,6 +7,7 @@
from textwrap import dedent

from teuthology import misc
from teuthology.contextutil import MaxWhileTries
from teuthology.orchestra import run
from teuthology.orchestra.run import CommandFailedError
from .mount import CephFSMount
Expand Down Expand Up @@ -234,7 +235,12 @@ def umount_wait(self, force=False):

try:
if self.fuse_daemon:
self.fuse_daemon.wait()
# Permit a timeout, so that we do not block forever
run.wait([self.fuse_daemon], 30)
except MaxWhileTries:
log.error("process failed to terminate after unmount. This probably"
"indicates a bug within ceph-fuse.")
raise
except CommandFailedError:
pass

Expand Down

0 comments on commit 07eb03a

Please sign in to comment.