A Two-phase commit protocol cannot dependably recover from a failure of both the coordinator and a cohort member during the Commit phase.
The Three-phase commit protocol eliminates this problem by introducing the Prepared to commit state.