Files
zuul/zuul/source
James E. Blair 92464a2291 Detect dependency cycles introduced with new patchsets
When Zuul updates its copy of data about a change, it protects itself
from inifinite loops by detecting dependency cycles.  However, this
only happens when updating a change.  If a change depends on another
change already in Zuul's cache, it will not necessarily update the
cached change, and the dependency cycle detection code will not run.
This can later cause problems when Zuul attempts to work with these
changes.

Correct this by always performing a dependency cycle check, even
on cached changes which are not updated.

A test is added for this, and it also ensures that the situation can
still be corrected by the user by removing the dependency cycle.

Many debug log lines in the Gerrit source driver are updated to make
it more clear what change is being updated in the updateChange method,
since this method is recursive and otherwise logs can get somewhat
confusing.

Change-Id: I6ab570f734d3abed2f71d547f130d9c392b976d6
2016-04-05 10:30:16 -07:00
..