This kept the OSD in the queue and caused the entire removal
sequence to replay indefinitely on each serve iteration.
Fixes: https://tracker.ceph.com/issues/75744
Signed-off-by: Joshua Blanch <joshua.blanch@clyso.com>
logger.info(f"Successfully purged {osd} on {osd.hostname}")
if osd.zap:
- # throws an exception if the zap fails
- logger.info(f"Zapping devices for {osd} on {osd.hostname}")
- osd.do_zap()
- logger.info(f"Successfully zapped devices for {osd} on {osd.hostname}")
+ try:
+ logger.info(f"Zapping devices for {osd} on {osd.hostname}")
+ osd.do_zap()
+ logger.info(f"Successfully zapped devices for {osd} on {osd.hostname}")
+ except Exception:
+ logger.exception(f"Failed to zap devices for {osd} on {osd.hostname}")
self.mgr.cache.invalidate_host_devices(osd.hostname)
logger.debug(f"Removing {osd} from the queue.")