[Bug 39487] New: Make step dependencies more flexible

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Oct 22 08:10:45 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=39487

            Bug ID: 39487
           Summary: Make step dependencies more flexible
           Product: Wine-Testbot
           Version: unspecified
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: unknown
          Assignee: wine-bugs at winehq.org
          Reporter: fgouget at codeweavers.com
      Distribution: ---

The TestBot jobs are split into steps and tasks.
 * The steps are numbered and must be executed in order. Each step has an
associated file.
 * Each step has one or more tasks which can all be run in parallel.

Typically the first step is the build step associated to the patch. It produces
the 32 and 64 bit executables for the following steps hence why it has to be
executed first. When it fails the other steps are skipped which is not the case
for the other steps.

So the general structure is:
 Step 1 - patch.diff - Build
 Step 2 - test_32.exe - One task per VM
 Step 3 - test_64.exe - One task per VM

So one source of inefficiency is that the 64 bit tests cannot start until all
the 32 bit tests have completed. It does not necessarily make the overall job
execution longer but it can leave a VM host idle while it waits for the
remaining 32 bit tests to complete. And if a developer is watching the job's
page he will not know of 64 bit failures until then.

So while the build step has to come before all others, that condition should be
relaxed for the other steps.

The database schema presented in bug 39412 adds a DependencyNo field to the
Step table so that step dependencies can be made explicit. This would allow
making both test steps depend on build one. Note that with this scheme a given
step could not directly depend on multiple other steps but that does not seem
needed.

It would also make more explicit the fact that test steps cannot be run if the
build one fails instead of hard-coding that behavior in Jobs::UpdateStatus().

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list