]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tasks/cephfs: vstart & fuse improvements
authorJohn Spray <john.spray@redhat.com>
Thu, 10 Mar 2016 12:27:44 +0000 (12:27 +0000)
committerJohn Spray <john.spray@redhat.com>
Thu, 10 Mar 2016 12:27:44 +0000 (12:27 +0000)
A couple of corner cases that would get tripped up sometimes
in a vstart_runner.py environment.

Signed-off-by: John Spray <john.spray@redhat.com>
tasks/cephfs/fuse_mount.py
tasks/cephfs/vstart_runner.py

index e90a04817eecb7298dabe986d8d926e7bc14b069..df2b82085228786f469893fa82ce3f060f0863ef 100644 (file)
@@ -153,7 +153,8 @@ class FuseMount(CephFSMount):
         try:
             proc.wait()
         except CommandFailedError:
-            if "endpoint is not connected" in proc.stderr.getvalue():
+            if ("endpoint is not connected" in proc.stderr.getvalue()
+            or "Software caused connection abort" in proc.stderr.getvalue()):
                 # This happens is fuse is killed without unmount
                 log.warn("Found stale moutn point at {0}".format(self.mountpoint))
                 return True
index 34a567d215b07eb6a3c12e51ad3cd4672ed5fd08..f244f26bd371bf6fd35bc83d4b0286b2c1aeb71b 100644 (file)
@@ -402,6 +402,10 @@ class LocalFuseMount(FuseMount):
         waited = 0
         post_mount_conns = list_connections()
         while len(post_mount_conns) <= len(pre_mount_conns):
+            if self.fuse_daemon.finished:
+                # Did mount fail?  Raise the CommandFailedError instead of
+                # hitting the "failed to populate /sys/" timeout
+                self.fuse_daemon.wait()
             time.sleep(1)
             waited += 1
             if waited > 30: