infocalypse

(djk)
2009-04-03: Fix to catch state machine stalls.

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)