]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-disk: systemd must not kill a running ceph-disk
authorLoic Dachary <ldachary@redhat.com>
Sun, 20 Sep 2015 11:54:05 +0000 (13:54 +0200)
committerLoic Dachary <ldachary@redhat.com>
Tue, 22 Sep 2015 06:46:56 +0000 (08:46 +0200)
When activating a device, ceph-disk trigger restarts the ceph-disk
systemd service. Two consecutive udev add on the same device will
restart the ceph-disk systemd service and the second one may kill the
first one, leaving the device half activated.

The ceph-disk systemd service is instructed to not kill an existing
process when restarting. The second run waits (via flock) for the second
one to complete before running so that they do not overlap.

http://tracker.ceph.com/issues/13160 Fixes: #13160

Signed-off-by: Loic Dachary <ldachary@redhat.com>
systemd/ceph-disk@.service

index 88e4aef44160ef531f47e3f7337faf163ed03554..cff7e9fbc4a25485493ff90255c809b67abd4822 100644 (file)
@@ -3,6 +3,6 @@ Description=Ceph disk activation: %f
 
 [Service]
 Type=oneshot
-RemainAfterExit=yes
-ExecStart=/usr/sbin/ceph-disk --verbose --log-stdout trigger --sync %f
+KillMode=none
+ExecStart=/bin/flock /var/lock/ceph-disk -c '/usr/sbin/ceph-disk --verbose --log-stdout trigger --sync %f'
 TimeoutSec=0