diff --git a/src/middlewared/middlewared/plugins/failover_/event.py b/src/middlewared/middlewared/plugins/failover_/event.py index 3ec9b563675e..f91646ce1108 100644 --- a/src/middlewared/middlewared/plugins/failover_/event.py +++ b/src/middlewared/middlewared/plugins/failover_/event.py @@ -389,7 +389,7 @@ def vrrp_master(self, job, fobj, ifname, event): try: # Request fenced_reload just in case the job does not complete in time jbof_job = self.run_call('jbof.configure_job', True) - jbof_job.wait_sync(timeout=10) + jbof_job.wait_sync(timeout=60) if jbof_job.error: logger.error(f'Error attaching JBOFs: {jbof_job.error}') elif jbof_job.result['failed']: @@ -397,7 +397,13 @@ def vrrp_master(self, job, fobj, ifname, event): else: logger.info(jbof_job.result['message']) except TimeoutError: - logger.error('Timed out attaching JBOFs - will continue in background') + logger.error('Timed out attaching JBOFs. Retrying') + try: + jbof_job.wait_sync(timeout=60) + except TimeoutError: + logger.error('Timed out attaching JBOFs.') + else: + logger.info('Done bring up of NVMe/RoCE') except Exception: logger.error('Unexpected error', exc_info=True) else: diff --git a/src/middlewared/middlewared/plugins/jbof/crud.py b/src/middlewared/middlewared/plugins/jbof/crud.py index e80fab632cf0..ca8be2511450 100644 --- a/src/middlewared/middlewared/plugins/jbof/crud.py +++ b/src/middlewared/middlewared/plugins/jbof/crud.py @@ -852,6 +852,7 @@ async def configure_jbof(self, node, shelf_index): interface['prefixlen'], interface['mtu']) jbof_ips.append(jbof_static_ip_from_initiator_ip(interface['address'])) + self.logger.debug(f'Configured {interface["address"]} for NVMe/RoCE') # Next do the NVMe connect # Include some retry code, but expect it won't get used.