ceph-disk: systemd must not kill a running ceph-disk

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>
This commit is contained in:
Loic Dachary 2015-09-20 13:54:05 +02:00
parent cc13fa05fd
commit f0a47578c7

View 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