{'command': err.cmd, 'response': err.stderr})
LOG.debug(mesg)
- LOG.debug(_('Attempting udev settle and retry of lvremove...'))
+ LOG.debug('Attempting udev settle and retry of lvremove...')
run_udevadm_settle()
- self._execute('lvremove',
- '-f',
- '%s/%s' % (self.vg_name, name),
- root_helper=self._root_helper, run_as_root=True)
+ # The previous failing lvremove -f might leave behind
+ # suspended devices; when lvmetad is not available, any
+ # further lvm command will block forever.
+ # Therefore we need to skip suspended devices on retry.
+ LVM_CONFIG += 'devices { ignore_suspended_devices = 1}'
+
+ self._execute(
+ 'lvremove',
+ '--config', LVM_CONFIG,
+ '-f',
+ '%s/%s' % (self.vg_name, name),
+ root_helper=self._root_helper, run_as_root=True)
def revert(self, snapshot_name):
"""Revert an LV from snapshot.