{"id":"recovery-requires-participant-availability","text":"`Coordinator.recover()` checks `is_available()` before re-sending decisions and skips unavailable participants, meaning a double failure (coordinator crash + participant crash) leaves locks held until both are up and recovery re-runs.","truth_value":"IN","source":"entries/2026/05/29/topic-2pc-blocking-problem.md","source_url":"","source_hash":"","justifications":[],"dependents":["2pc-has-design-implementation-gap"],"metadata":{},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"recovery-requires-participant-availability","truth_value":"IN","reason":"premise"}]}}