From 6203f33df4483d6c131bbb4820bc861050fb7848 Mon Sep 17 00:00:00 2001 From: John Spray Date: Mon, 6 Feb 2017 22:52:17 +0000 Subject: [PATCH] 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 --- qa/tasks/cephfs/fuse_mount.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/qa/tasks/cephfs/fuse_mount.py b/qa/tasks/cephfs/fuse_mount.py index 896ca5c67fd..872412f912d 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'