[fix][worker][bug] master/worker crash when registry recover from SUSPENDED to RECONNECTED (#13328)
This commit is contained in:
parent
664b17ae96
commit
d27d27f7d7
|
|
@ -92,18 +92,22 @@ public class MasterWaitingStrategy implements MasterConnectStrategy {
|
|||
|
||||
@Override
|
||||
public void reconnect() {
|
||||
try {
|
||||
ServerLifeCycleManager.recoverFromWaiting();
|
||||
reStartMasterResource();
|
||||
// reopen the resource
|
||||
logger.info("Recover from waiting success, the current server status is {}",
|
||||
ServerLifeCycleManager.getServerStatus());
|
||||
} catch (Exception e) {
|
||||
String errorMessage =
|
||||
String.format("Recover from waiting failed, the current server status is %s, will stop the server",
|
||||
ServerLifeCycleManager.getServerStatus());
|
||||
logger.error(errorMessage, e);
|
||||
registryClient.getStoppable().stop(errorMessage);
|
||||
if (ServerLifeCycleManager.isRunning()) {
|
||||
logger.info("no need to reconnect, as the current server status is running");
|
||||
} else {
|
||||
try {
|
||||
ServerLifeCycleManager.recoverFromWaiting();
|
||||
reStartMasterResource();
|
||||
logger.info("Recover from waiting success, the current server status is {}",
|
||||
ServerLifeCycleManager.getServerStatus());
|
||||
} catch (Exception e) {
|
||||
String errorMessage =
|
||||
String.format(
|
||||
"Recover from waiting failed, the current server status is %s, will stop the server",
|
||||
ServerLifeCycleManager.getServerStatus());
|
||||
logger.error(errorMessage, e);
|
||||
registryClient.getStoppable().stop(errorMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,19 +92,23 @@ public class WorkerWaitingStrategy implements WorkerConnectStrategy {
|
|||
|
||||
@Override
|
||||
public void reconnect() {
|
||||
try {
|
||||
ServerLifeCycleManager.recoverFromWaiting();
|
||||
reStartWorkerResource();
|
||||
logger.info("Recover from waiting success, the current server status is {}",
|
||||
ServerLifeCycleManager.getServerStatus());
|
||||
} catch (Exception e) {
|
||||
String errorMessage =
|
||||
String.format("Recover from waiting failed, the current server status is %s, will stop the server",
|
||||
ServerLifeCycleManager.getServerStatus());
|
||||
logger.error(errorMessage, e);
|
||||
registryClient.getStoppable().stop(errorMessage);
|
||||
if (ServerLifeCycleManager.isRunning()) {
|
||||
logger.info("no need to reconnect, as the current server status is running");
|
||||
} else {
|
||||
try {
|
||||
ServerLifeCycleManager.recoverFromWaiting();
|
||||
reStartWorkerResource();
|
||||
logger.info("Recover from waiting success, the current server status is {}",
|
||||
ServerLifeCycleManager.getServerStatus());
|
||||
} catch (Exception e) {
|
||||
String errorMessage =
|
||||
String.format(
|
||||
"Recover from waiting failed, the current server status is %s, will stop the server",
|
||||
ServerLifeCycleManager.getServerStatus());
|
||||
logger.error(errorMessage, e);
|
||||
registryClient.getStoppable().stop(errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in New Issue