92464a2291
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