From: John Spray Date: Mon, 6 Feb 2017 22:52:17 +0000 (+0000) Subject: tasks/cephfs: tear down on mount() failure X-Git-Tag: v12.0.1~241^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6203f33df4483d6c131bbb4820bc861050fb7848;p=ceph.git tasks/cephfs: tear down on mount() failure There were some cases where we would leave a mountpoint that would cause the teuthology teardown to get hung up when it tried to look inside cephtest/ Signed-off-by: John Spray --- diff --git a/qa/tasks/cephfs/fuse_mount.py b/qa/tasks/cephfs/fuse_mount.py index 896ca5c67fd5..872412f912de 100644 --- a/qa/tasks/cephfs/fuse_mount.py +++ b/qa/tasks/cephfs/fuse_mount.py @@ -23,6 +23,18 @@ class FuseMount(CephFSMount): self._fuse_conn = None def mount(self, mount_path=None, mount_fs_name=None): + try: + return self._mount(mount_path, mount_fs_name) + except RuntimeError: + # Catch exceptions by the mount() logic (i.e. not remote command + # failures) and ensure the mount is not left half-up. + # Otherwise we might leave a zombie mount point that causes + # anyone traversing cephtest/ to get hung up on. + log.warn("Trying to clean up after failed mount") + self.umount_wait(force=True) + raise + + def _mount(self, mount_path, mount_fs_name): log.info("Client client.%s config is %s" % (self.client_id, self.client_config)) daemon_signal = 'kill'