Fix to catch state machine stalls.
diff --git a/infocalypse/requestingbundles.py b/infocalypse/requestingbundles.py --- a/infocalypse/requestingbundles.py +++ b/infocalypse/requestingbundles.py @@ -162,6 +162,11 @@ class RequestingBundles(RetryingRequestL else: self._handle_failure(client, msg, candidate) + # Catch statemachine stalls. + if (self.parent.current_state == self and + self.is_stalled()): + self.parent.transition(self.failure_state) + # DONT add to pending. Base clase does that. def make_request(self, candidate): """ Implementation of RetryingRequestList virtual. """ @@ -420,6 +425,8 @@ class RequestingBundles(RetryingRequestL self.finished_candidates.append(candidate) if self.is_stalled(): + # BUG: Kind of. We can update w/o the graph without ever reporting + # that we couldn't get the graph. self.parent.ctx.ui_.warn("Couldn't read graph from Freenet!\n") self.parent.transition(self.failure_state)