diff --git a/aeron-cluster/src/main/java/io/aeron/cluster/ConsensusModuleAgent.java b/aeron-cluster/src/main/java/io/aeron/cluster/ConsensusModuleAgent.java index 8f7a842c5a..6acfee515e 100644 --- a/aeron-cluster/src/main/java/io/aeron/cluster/ConsensusModuleAgent.java +++ b/aeron-cluster/src/main/java/io/aeron/cluster/ConsensusModuleAgent.java @@ -2227,11 +2227,14 @@ private int consensusWork(final long timestamp, final long nowNs) { final long limit = null != appendPosition ? appendPosition.get() : logRecordingStopPosition; final int count = logAdapter.poll(Math.min(notifiedCommitPosition, limit)); - if (0 == count && logAdapter.isImageClosed()) + if (0 == count) { final boolean isEos = logAdapter.isLogEndOfStream(); - enterElection(isEos, "log disconnected from leader: eos=" + isEos); - return 1; + if (isEos || logAdapter.isImageClosed()) + { + enterElection(isEos, "log disconnected from leader: eos=" + isEos); + return 1; + } } commitPosition.proposeMaxOrdered(logAdapter.position());