Skip to content

Commit 261f5d3

Browse files
deivid-rodriguezmatzbot
authored andcommitted
[rubygems/rubygems] Add naive infinite loop detection when fixing lockfile dependencies
rubygems/rubygems@5e933968a2
1 parent c79d236 commit 261f5d3

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

lib/bundler/definition.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,10 +587,18 @@ def filter_specs(specs, deps)
587587
end
588588

589589
def materialize(dependencies)
590+
# Tracks potential endless loops trying to re-resolve.
591+
# TODO: Remove as dead code if not reports are received in a while
592+
incorrect_spec = nil
593+
590594
specs = begin
591595
resolve.materialize(dependencies)
592596
rescue IncorrectLockfileDependencies => e
593-
reresolve_without([e.spec])
597+
spec = e.spec
598+
raise "Infinite loop while fixing lockfile dependencies" if incorrect_spec == spec
599+
600+
incorrect_spec = spec
601+
reresolve_without([spec])
594602
retry
595603
end
596604

0 commit comments

Comments
 (0)