[PATCH] testbot/WineRunReconfig: Restart the TestAgent server if it was updated.

Francois Gouget fgouget at codeweavers.com
Fri Sep 27 06:04:27 CDT 2019


Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 testbot/bin/WineRunReconfig.pl | 20 ++++++++++++++++++++
 testbot/lib/Build/Utils.pm     |  9 ++++++---
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/testbot/bin/WineRunReconfig.pl b/testbot/bin/WineRunReconfig.pl
index ddb2208e2..606027182 100755
--- a/testbot/bin/WineRunReconfig.pl
+++ b/testbot/bin/WineRunReconfig.pl
@@ -487,6 +487,26 @@ if ($NewStatus eq "completed")
       FatalTAError($TA, "An error occurred while retrieving '$TaskDir/$BaseName'");
     }
   }
+
+  if ($Summary->{"testagentd"})
+  {
+    # Restart the TestAgent server from the new binary
+    # Note that the privileged TestAgent server is usually run with
+    # --set-time-only which means it cannot be upgraded since the restart RPC
+    # is blacklisted. But that also means it's unlikely to need upgrading.
+    Debug(Elapsed($Start), " Upgrading testagentd from ". $TA->GetVersion() ."\n");
+    $TA->Restart(undef);
+    # Give the server enough time to restart, thus (maybe) avoiding a timeout
+    # on the first (re)connection attempt.
+    sleep(1);
+    my $Version = $TA->GetVersion();
+    if (!$Version)
+    {
+      my $ErrMessage = $TA->GetLastError();
+      FatalError("Could not connect to the new ". $VM->Name ." TestAgent: $ErrMessage\n");
+    }
+    Debug(Elapsed($Start), "Upgraded testagentd to $Version\n");
+  }
 }
 
 $TA->Disconnect();
diff --git a/testbot/lib/Build/Utils.pm b/testbot/lib/Build/Utils.pm
index 9a4590677..50146301a 100644
--- a/testbot/lib/Build/Utils.pm
+++ b/testbot/lib/Build/Utils.pm
@@ -196,9 +196,8 @@ sub GetCPUCount()
 
 sub BuildNativeTestAgentd()
 {
-  # If testagentd already exists it's likely already running
-  # so don't rebuild it.
-  return 1 if (-x "$BinDir/build/testagentd");
+  my $NativeTestAgentd = "$::RootDir/bin/build/testagentd";
+  my $Before = GetMTime($NativeTestAgentd);
 
   InfoMsg "\nBuilding the native testagentd\n";
   my $CPUCount = GetCPUCount();
@@ -210,6 +209,10 @@ sub BuildNativeTestAgentd()
     return !1;
   }
 
+  if ($Before != GetMTime($NativeTestAgentd))
+  {
+    LogMsg "Updated testagentd\n";
+  }
   return 1;
 }
 
-- 
2.20.1



More information about the wine-devel mailing list