diff --git a/redis/redis-keeper/src/main/java/com/ctrip/xpipe/redis/keeper/impl/DefaultRedisKeeperServer.java b/redis/redis-keeper/src/main/java/com/ctrip/xpipe/redis/keeper/impl/DefaultRedisKeeperServer.java index 52f9a93e5..a810516e8 100644 --- a/redis/redis-keeper/src/main/java/com/ctrip/xpipe/redis/keeper/impl/DefaultRedisKeeperServer.java +++ b/redis/redis-keeper/src/main/java/com/ctrip/xpipe/redis/keeper/impl/DefaultRedisKeeperServer.java @@ -796,8 +796,12 @@ public void fullSyncToSlave(final RedisSlave redisSlave) throws IOException { } try{ - dumpNewRdb(tryRordb); + RdbDumper newDumper = dumpNewRdb(tryRordb); redisSlave.waitForRdbDumping(); + if (newDumper.future().isDone() && !newDumper.future().isSuccess()) { + logger.info("[fullSyncToSlave][new dumper fail immediatelly]"); + redisSlave.close(); + } }catch(AbstractRdbDumperException e){ logger.error("[fullSyncToSlave]", e); if(e.isCancelSlave()){