zuul/zuul/manager
Tobias Henkel a239ac23a7
Resume paused job with skipped children
Currently there are two corner cases where we can miss to resume a
paused job. In the problematic scenario we have a job that pauses
(compile), a job that is independent of 'compile' (pre-test) and a job
that depends on both (test).

The first corner case is 'pre-test' fails before 'compile'
pauses. This leads to 'test' already skipped when 'compile'
pauses. This is currently not catched because a paused job only
directly resumes if there are no child jobs which was based under the
wrong assumption that there can be no build result prior to 'compile'.

The second corner case is that 'pre-test' fails after 'compile'
pauses. In this case it resumes its own parent jobs (that don't exist)
but not the parent jobs of the jobs that get marked as skipped.

Both cases can be solved by not resuming parent builds of builds but
just iterate over the buildset and resume any paused job that is
allowed to be resumed. This also makes it possible to remove the
special resume behavior if the paused job has no children as this case
is now handled by the common resume handling anyway.

Change-Id: If1a9e62d1b3d1782eefef8adfb2ef1a7ba75f2a1
2018-11-05 12:06:32 +01:00
..
__init__.py Resume paused job with skipped children 2018-11-05 12:06:32 +01:00
dependent.py Fix job contamination by unmerged change 2018-07-09 22:37:19 +02:00
independent.py Fix dependency cycle false positive 2018-01-17 04:23:39 +00:00
supercedent.py Add supercedent pipeline manager 2018-06-14 16:32:03 -07:00