From e53bbb71e5779573493617aa7ce3ef2cf8ff4614 Mon Sep 17 00:00:00 2001 From: hamdykhader Date: Mon, 15 Jun 2026 17:06:26 +0300 Subject: [PATCH 1/3] fix: add retry logic to NVMe controller attachment in storage_node_ops.py --- simplyblock_core/storage_node_ops.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/simplyblock_core/storage_node_ops.py b/simplyblock_core/storage_node_ops.py index ef23b9fb4..b543b9ad3 100755 --- a/simplyblock_core/storage_node_ops.py +++ b/simplyblock_core/storage_node_ops.py @@ -931,11 +931,14 @@ def _create_device_partitions(rpc_client, nvme, snode, num_partitions_per_dev, j if not rpc_client.bdev_nvme_controller_list(nvme.nvme_controller): break time.sleep(1) - try: - rpc_client.bdev_nvme_controller_attach(nvme.nvme_controller, nvme.pcie_address) - except RPCException as e: - logger.error('Failed to create device partitions: ' + str(e)) - return False + + for i in range(10): + try: + rpc_client.bdev_nvme_controller_attach(nvme.nvme_controller, nvme.pcie_address) + except RPCException: + logger.error('Failed to create device partitions, retrying...') + time.sleep(1) + time.sleep(1) rpc_client.bdev_examine(nvme.nvme_bdev) time.sleep(1) From 315c8f7ed7e1035ef29748e717b28b3927a7a723 Mon Sep 17 00:00:00 2001 From: hamdykhader Date: Mon, 15 Jun 2026 17:09:08 +0300 Subject: [PATCH 2/3] add break --- simplyblock_core/storage_node_ops.py | 1 + 1 file changed, 1 insertion(+) diff --git a/simplyblock_core/storage_node_ops.py b/simplyblock_core/storage_node_ops.py index b543b9ad3..663e610ee 100755 --- a/simplyblock_core/storage_node_ops.py +++ b/simplyblock_core/storage_node_ops.py @@ -935,6 +935,7 @@ def _create_device_partitions(rpc_client, nvme, snode, num_partitions_per_dev, j for i in range(10): try: rpc_client.bdev_nvme_controller_attach(nvme.nvme_controller, nvme.pcie_address) + break except RPCException: logger.error('Failed to create device partitions, retrying...') time.sleep(1) From 80a5c880ed97b704b12022c99508428e6dd40272 Mon Sep 17 00:00:00 2001 From: hamdykhader Date: Mon, 15 Jun 2026 17:10:55 +0300 Subject: [PATCH 3/3] fix: add break condition to NVMe controller list retry logic in storage_node_ops.py --- simplyblock_core/storage_node_ops.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/simplyblock_core/storage_node_ops.py b/simplyblock_core/storage_node_ops.py index 663e610ee..9f545a7a1 100755 --- a/simplyblock_core/storage_node_ops.py +++ b/simplyblock_core/storage_node_ops.py @@ -939,6 +939,9 @@ def _create_device_partitions(rpc_client, nvme, snode, num_partitions_per_dev, j except RPCException: logger.error('Failed to create device partitions, retrying...') time.sleep(1) + if rpc_client.bdev_nvme_controller_list(nvme.nvme_controller): + break + time.sleep(1) time.sleep(1) rpc_client.bdev_examine(nvme.nvme_bdev)