]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-disk: retry on OSError 18169/head
authorKefu Chai <kchai@redhat.com>
Sat, 7 Oct 2017 14:15:11 +0000 (22:15 +0800)
committerKefu Chai <kchai@redhat.com>
Sun, 8 Oct 2017 13:00:11 +0000 (21:00 +0800)
we are likely to
1) create partition, for instance, sdc1
2) partprobe sdc
3) udevadm settle
4) check the device by its path: /dev/sdc1

but there is chance that the uevent sent from kernel fails to reach udev
before we call "udevadm", hence "/dev/sdc1" does not exist even after
"udevadm settle" returns. so we retry in case of OSError here.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 4f82dfb9e761a09484e6ba3bd027da535162783e)

src/ceph-disk/ceph_disk/main.py

index b03fb00352a4959c08a03c4ca12e35300357bf35..d2aaf33edbd875f3b52ac14f70f7bc93910abc22 100755 (executable)
@@ -1713,6 +1713,7 @@ class DevicePartition(object):
         return self.ptype_map[name]['ready']
 
     @staticmethod
+    @retry(OSError)
     def factory(path, dev, args):
         dmcrypt_type = CryptHelpers.get_dmcrypt_type(args)
         if ((path is not None and is_mpath(path)) or