Phase2 failed – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 6.8-7.8

Briefly, this error occurs when Elasticsearch encounters an issue during the second phase of the two-phase commit process. This could be due to a network issue, disk space issue, or a problem with the underlying storage system. To resolve this issue, you can try the following: 1) Check and ensure there is sufficient disk space. 2) Verify the network connectivity between the nodes. 3) Check the health of the underlying storage system. 4) Review the Elasticsearch logs for more detailed error information.

This guide will help you check for common problems that cause the log ” phase2 failed ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: indices, recovery.

Log Context

Log “phase2 failed” class name is RecoverySourceHandler.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 retentionLeases; mappingVersionOnPrimary; sendSnapshotStep);
 sendSnapshotStep.whenComplete(
 r -> IOUtils.close(phase2Snapshot);
 e -> {
 IOUtils.closeWhileHandlingException(phase2Snapshot);
 onFailure.accept(new RecoveryEngineException(shard.shardId(); 2; "phase2 failed"; e));
 });  }; onFailure);  // Recovery target can trim all operations >= startingSeqNo as we have sent all these operations in the phase 2

 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?