From aa2e0c40fb395226b1bd427e0a486032b63a3895 Mon Sep 17 00:00:00 2001 From: Loic Dachary Date: Wed, 30 Sep 2015 19:35:04 +0200 Subject: [PATCH] do not udevadm trigger, ceph-disk does it There is no need for osd create to call udevadm trigger action=add. By running all actions associated with add for all block devices, it may also trigger some race conditions. For instance, the following happens about 10% of the time, when using dmcrypt: * ceph-disk prepare --dmcrypt /dev/vdb * /dev/vdb1 starts activating via udev * ceph-deploy triggers action=add * /dev/vdb2 udev chown root /dev/vdb2 * /dev/vdb1 activate fails because of permission denied on /dev/vdb2 * /dev/vdb2 udev action chown ceph /dev/vdb2 http://tracker.ceph.com/issues/13299 Fixes: #13299 Signed-off-by: Loic Dachary --- ceph_deploy/osd.py | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/ceph_deploy/osd.py b/ceph_deploy/osd.py index 7bc9302..e797fb9 100644 --- a/ceph_deploy/osd.py +++ b/ceph_deploy/osd.py @@ -42,16 +42,6 @@ def create_osd(conn, cluster, key): logger.warning('osd keyring does not exist yet, creating one') conn.remote_module.write_keyring(path, key) - return remoto.process.run( - conn, - [ - 'udevadm', - 'trigger', - '--subsystem-match=block', - '--action=add', - ], - ) - def osd_tree(conn, cluster): """ @@ -240,16 +230,6 @@ def prepare_disk( system.enable_service(conn, "ceph.target") elif init == 'sysvinit': system.enable_service(conn, "ceph") - - return remoto.process.run( - conn, - [ - 'udevadm', - 'trigger', - '--subsystem-match=block', - '--action=add', - ], - ) def exceeds_max_osds(args, reasonable=20): -- 2.47.3