]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-disk: trigger must ensure device ownership 12132/head 12136/head
authorLoic Dachary <ldachary@redhat.com>
Tue, 22 Nov 2016 14:26:18 +0000 (15:26 +0100)
committerLoic Dachary <ldachary@redhat.com>
Tue, 22 Nov 2016 14:29:25 +0000 (15:29 +0100)
The udev rules that set the owner/group of the OSD devices are racing
with 50-udev-default.rules and depending on which udev event fires last,
ownership may not be as expected.

Since ceph-disk trigger --sync runs as root, always happens after
dm/lvm/filesystem units are complete and before activation, it is a good
time to set the ownership of the device.

It does not eliminate all races: a script running after systemd
local-fs.target and firing a udev event may create a situation where the
permissions of the device are temporarily reverted while the activation
is running.

Fixes: http://tracker.ceph.com/issues/17813
Signed-off-by: Loic Dachary <loic@dachary.org>
src/ceph-disk/ceph_disk/main.py

index 17a6695d2435877a063a6619730945cd10ad6c31..b856836fa6b9d2275c7b800e439c4c96cd700ae0 100755 (executable)
@@ -4442,6 +4442,8 @@ def main_trigger(args):
         )
         return
 
+    if get_ceph_user() == 'ceph':
+        command_check_call(['chown', 'ceph:ceph', args.dev])
     parttype = get_partition_type(args.dev)
     partid = get_partition_uuid(args.dev)