{"id":"2pc-participant-recover-returns-in-doubt-only","text":"`Participant.recover()` identifies transactions stuck in `\"prepared\"` state but provides no mechanism to resolve them without the coordinator, making it a diagnostic tool rather than a recovery procedure","truth_value":"IN","source":"entries/2026/05/29/topic-three-phase-commit.md","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{"example":"def recover(self):\n    tx_states = {}\n    for entry in self.log:\n        tx_states[entry[\"tx_id\"]] = entry[\"state\"]\n    return [tx_id for tx_id, state in tx_states.items() if state == \"prepared\"]"},"explanation":{"steps":[{"node":"2pc-participant-recover-returns-in-doubt-only","truth_value":"IN","reason":"premise"}]}}