about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/SolverGit.pm4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/PublicInbox/SolverGit.pm b/lib/PublicInbox/SolverGit.pm
index 39acbe41..24d9da2f 100644
--- a/lib/PublicInbox/SolverGit.pm
+++ b/lib/PublicInbox/SolverGit.pm
@@ -439,6 +439,9 @@ sub resolve_patch ($$) {
 
         # see if we can find the blob in an existing git repo:
         my $cur_want = $want->{oid_b};
+        if ($self->{seen_oid}->{$cur_want}++) {
+                die "Loop detected solving $cur_want\n";
+        }
         if (my $existing = solve_existing($self, $want)) {
                 dbg($self, "found $cur_want in " .
                         join("\n", $existing->[0]->pub_urls));
@@ -504,6 +507,7 @@ sub solve ($$$$$) {
 
         $self->{oid_want} = $oid_want;
         $self->{out} = $out;
+        $self->{seen_oid} = {};
         $self->{tot} = 0;
         $self->{psgi_env} = $env;
         $self->{todo} = [ { %$hints, oid_b => $oid_want } ];