diff --git a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java index 5cc1ac6e091b39..20cb6b0070821a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java +++ b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java @@ -375,10 +375,25 @@ private void reSetupBdbEnvironment(InsufficientLogException insufficientLogEx) { // ATTN: here we use `getServingEnv()`, because only serving catalog has // helper nodes. HostInfo helperNode = Env.getServingEnv().getHelperNode(); - NetworkRestore restore = new NetworkRestore(); - NetworkRestoreConfig config = new NetworkRestoreConfig(); - config.setRetainLogFiles(false); - restore.execute(insufficientLogEx, config); + + for (int i = 0; i < RETRY_TIME; i++) { + try { + NetworkRestore restore = new NetworkRestore(); + NetworkRestoreConfig config = new NetworkRestoreConfig(); + config.setRetainLogFiles(false); + restore.execute(insufficientLogEx, config); + break; + } catch (Exception e) { + LOG.warn("retry={}, reSetupBdbEnvironment exception:", i, e); + try { + Thread.sleep(5 * 1000); + LOG.warn("after sleep insufficientLogEx:", insufficientLogEx); + } catch (InterruptedException e1) { + LOG.warn("InterruptedException", e1); + } + } + } + bdbEnvironment.close(); bdbEnvironment.setup(new File(environmentPath), selfNodeName, selfNodeHostPort, helperNode.getIp() + ":" + helperNode.getPort(), Env.getServingEnv().isElectable());