[PATCH] testbot: Lower the priority of long running mailing list jobs.

Francois Gouget fgouget at codeweavers.com
Wed Jan 29 05:54:23 CST 2020


This helps get as many patches tested as possible when a patch
(series) requires full rebuilds and keeps the TestBot busy for a long
time.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 testbot/lib/WineTestBot/Patches.pm | 11 ++++++++---
 testbot/web/Submit.pl              |  2 +-
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/testbot/lib/WineTestBot/Patches.pm b/testbot/lib/WineTestBot/Patches.pm
index d021f9cb43..ca8d57f90f 100644
--- a/testbot/lib/WineTestBot/Patches.pm
+++ b/testbot/lib/WineTestBot/Patches.pm
@@ -152,7 +152,8 @@ sub Submit($$$)
   # Create a new job for this patch
   my $Jobs = CreateJobs();
   my $NewJob = $Jobs->Add();
-  $NewJob->Priority(6);
+  my $Priority = 5;
+  $NewJob->Priority($Priority);
   my $PropertyDescriptor = $Jobs->GetPropertyDescriptorByName("Remarks");
   my $Subject = $self->Subject;
   $Subject =~ s/\[PATCH[^\]]*]//i;
@@ -282,8 +283,11 @@ sub Submit($$$)
 
       my $Task = $Tasks->Add();
       $Task->VM($VM);
-      $Task->Timeout(GetBuildTimeout($Impacts, $TaskMissions) +
-                     GetTestTimeout($Impacts, $TaskMissions));
+      my $Timeout = GetBuildTimeout($Impacts, $TaskMissions) +
+                    GetTestTimeout($Impacts, $TaskMissions);
+      # Let short-running jobs run first
+      $Priority = 6 if ($Timeout >= $WineBuildTimeout);
+      $Task->Timeout($Timeout);
       $Task->Missions($TaskMissions->{Statement});
     }
   }
@@ -320,6 +324,7 @@ sub Submit($$$)
 
   # Switch Status to staging to indicate we are done setting up the job
   $NewJob->Status("staging");
+  $NewJob->Priority($Priority);
   ($ErrKey, $ErrProperty, $ErrMessage) = $Jobs->Save();
   if (defined $ErrMessage)
   {
diff --git a/testbot/web/Submit.pl b/testbot/web/Submit.pl
index 1943b426e9..f76ca6e1af 100644
--- a/testbot/web/Submit.pl
+++ b/testbot/web/Submit.pl
@@ -1088,7 +1088,7 @@ sub _SubmitJob($$)
   my $Jobs = CreateJobs();
   my $NewJob = $Jobs->Add();
   $NewJob->User($self->GetCurrentSession()->User);
-  $NewJob->Priority(5);
+  $NewJob->Priority(4);
   $NewJob->Remarks($self->{Remarks} || $self->{CmdLineArg} || "");
   my $Branch = CreateBranches()->GetItem($self->{Branch});
   $NewJob->Branch($Branch) if (defined $Branch);
-- 
2.20.1



More information about the wine-devel mailing list