diff --git a/xCAT-server/lib/xcat/plugins/openbmc.pm b/xCAT-server/lib/xcat/plugins/openbmc.pm index 6183cf29b..346e67f76 100644 --- a/xCAT-server/lib/xcat/plugins/openbmc.pm +++ b/xCAT-server/lib/xcat/plugins/openbmc.pm @@ -2991,6 +2991,12 @@ sub deal_with_response { } if ($response->status_line eq $::RESPONSE_SERVICE_UNAVAILABLE) { + $node_info{$node}{_503_retries} = ($node_info{$node}{_503_retries} || 0) + 1; + if ($node_info{$node}{_503_retries} <= 3) { + $node_info{$node}{cur_status} =~ s/_RESPONSE$/_REQUEST/; + $node_wait{$node} = time() + 3; + return; + } $error = $::RESPONSE_SERVICE_UNAVAILABLE; } elsif ($response->status_line eq $::RESPONSE_METHOD_NOT_ALLOWED) { if ($node_info{$node}{cur_status} eq "REVENTLOG_RESOLVED_RESPONSE") {