[Starlingx-discuss] Role of zuul in build failures related to PLATFORM_RELEASE

Penney, Don Don.Penney at windriver.com
Wed May 27 16:40:14 UTC 2020


Sorry... I think I'm wrong on that... I thought all our repos were in the same queue, but I think I spoke too soon.

-----Original Message-----
From: Penney, Don 
Sent: Wednesday, May 27, 2020 12:39 PM
To: Jeremy Stanley; starlingx-discuss at lists.starlingx.io
Subject: RE: [Starlingx-discuss] Role of zuul in build failures related to PLATFORM_RELEASE

They're in the same "starlingx" queue, but we often see that multi-repo updates like this end up having some reviews "missed" by Zuul. In some cases, we've seen a chain of multiple reviews where a couple of the dependent reviews get picked up / noticed by Zuul, while others don't. It seems to be an intermittent issue.

-----Original Message-----
From: Jeremy Stanley [mailto:fungi at yuggoth.org] 
Sent: Wednesday, May 27, 2020 11:33 AM
To: starlingx-discuss at lists.starlingx.io
Subject: Re: [Starlingx-discuss] Role of zuul in build failures related to PLATFORM_RELEASE

On 2020-05-27 11:02:17 -0400 (-0400), Scott Little wrote:
> The two updates in question:
> 
> utilities: https://review.opendev.org/#/c/730108/
> 
> ansible-playbooks:  https://review.opendev.org/#/c/730113/
> 
> 
> 730113 depends in 730108
> 
> 730108 was WF-1 to prevent merge until 730113 was reviewd
> 
> 730113 received it's +2/+1 ... Zuul didn't merge because 730108 was 
> not merged.
> 
> 730108 is given it's WF+1 late Friday and merged.
> 
> Expected behavior was for 730113 to 'wake up' within zuul and merge.
> 
> It did not, and the builds produced unusable loads until the issue was 
> noticed on Monday.  730113 had to be given a new WF+1 to wake it up 
> and merge.

Zuul has logic to enqueue dependent changes together *if* their projects share a change queue. It does not have any feature to find changes which were blocked on other changes they don't share a change queue with, so doesn't know to automatically enqueue them once their dependencies merge. Zuul's pipeline enqueuing logic is event-driven, and only "wakes up" changes on events for related changes if they can be enqueued and tested together. Declaring cross-project dependencies between changes in projects which do not share a change queue serves only to block changes from merging, but will need a new enqueuing event for the depending change once its dependencies are satisfied, for example by removing and re-adding a Workflow +1 approval or a different reviewer adding a second Workflow +1.

The note at
https://zuul-ci.org/docs/zuul/discussion/gating.html#dependent-pipeline
hints at this, but I've just now proposed
https://review.opendev.org/731246 to make it more clear that the second change in this scenario is not automatically enqueued.
--
Jeremy Stanley


More information about the Starlingx-discuss mailing list