mschwendt pushed to plague (master). "Fix non-SSL shutdown of server and builder."

notifications at fedoraproject.org notifications at fedoraproject.org
Thu Apr 23 17:57:45 UTC 2015


>From 448577e193c844ddfc9bcc46ceefee997bf9b143 Mon Sep 17 00:00:00 2001
From: Michael Schwendt <mschwendt at fedoraproject.org>
Date: Thu, 23 Apr 2015 19:57:37 +0200
Subject: Fix non-SSL shutdown of server and builder.


diff --git a/plague-0.4.5.8-wakeup-serve_forever.patch b/plague-0.4.5.8-wakeup-serve_forever.patch
index c27c920..ad369d4 100644
--- a/plague-0.4.5.8-wakeup-serve_forever.patch
+++ b/plague-0.4.5.8-wakeup-serve_forever.patch
@@ -1,12 +1,19 @@
 diff -Nur plague-0.4.5.8-orig/builder/builder.py plague-0.4.5.8/builder/builder.py
 --- plague-0.4.5.8-orig/builder/builder.py	2010-05-05 12:45:20.000000000 +0200
-+++ plague-0.4.5.8/builder/builder.py	2015-03-02 01:44:47.343591868 +0100
-@@ -799,6 +799,14 @@
++++ plague-0.4.5.8/builder/builder.py	2015-04-23 19:54:45.938714486 +0200
+@@ -793,14 +793,22 @@
+ 
+ 
+ bserver = None
++bserver_addr = None
+ 
+ def exit_handler(signum, frame):
+-    global bserver
++    global bserver, bserver_addr
      log("Received SIGTERM, quitting...\n")
      bserver.stop()
  
-+    host = bserver.server_name
-+    port = bserver.server_port
++    (host,port) = bserver_addr
 +    print "Sending fake request to %s:%s to trigger shutdown..." % (host, port)
 +    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 +    s.connect((host, port))
@@ -14,11 +21,22 @@ diff -Nur plague-0.4.5.8-orig/builder/builder.py plague-0.4.5.8/builder/builder.
 +    s.close()
 +
  def main():
-     global bserver
+-    global bserver
++    global bserver, bserver_addr
  
+     usage = "Usage: %s  [-p <pidfile>] [-l <logfile>] [-d] -c <configfile>" % sys.argv[0]
+     parser = OptionParser(usage=usage)
+@@ -883,6 +891,7 @@
+             bserver = AuthedXMLRPCServer.AuthedSSLXMLRPCServer((hostname, xmlrpc_port), None, certs)
+         else:
+             bserver = AuthedXMLRPCServer.AuthedXMLRPCServer((hostname, xmlrpc_port), None)
++        bserver_addr = (hostname,xmlrpc_port)
+     except socket.error, e:
+         if e[0] == 98:
+             log("Error: couldn't bind to address '%s:%s'.  "  \
 diff -Nur plague-0.4.5.8-orig/common/SSLConnection.py plague-0.4.5.8/common/SSLConnection.py
 --- plague-0.4.5.8-orig/common/SSLConnection.py	2010-08-10 17:19:22.000000000 +0200
-+++ plague-0.4.5.8/common/SSLConnection.py	2015-03-02 01:00:55.000000000 +0100
++++ plague-0.4.5.8/common/SSLConnection.py	2015-04-23 19:51:52.547936869 +0200
 @@ -149,6 +149,8 @@
              except SSL.SysCallError, (e, err):
                  time.sleep(0.2)
@@ -30,13 +48,20 @@ diff -Nur plague-0.4.5.8-orig/common/SSLConnection.py plague-0.4.5.8/common/SSLC
  class PlgFileObject(socket._fileobject):
 diff -Nur plague-0.4.5.8-orig/server/main.py plague-0.4.5.8/server/main.py
 --- plague-0.4.5.8-orig/server/main.py	2008-01-31 14:28:05.000000000 +0100
-+++ plague-0.4.5.8/server/main.py	2015-03-02 01:44:47.365590682 +0100
-@@ -68,6 +68,14 @@
++++ plague-0.4.5.8/server/main.py	2015-04-23 19:53:18.341373651 +0200
+@@ -62,14 +62,22 @@
+ #################################################################
+ 
+ bm_server = None
++bm_server_addr = None
+ 
+ def exit_handler(signum, frame):
+-    global bm_server
++    global bm_server, bm_server_addr
      print "Received SIGTERM, quitting..."
      bm_server.stop()
  
-+    host = bm_server.server_name
-+    port = bm_server.server_port
++    (host,port) = bm_server_addr
 +    print "Sending fake request to %s:%s to trigger shutdown..." % (host, port)
 +    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 +    s.connect((host, port))
@@ -44,5 +69,16 @@ diff -Nur plague-0.4.5.8-orig/server/main.py plague-0.4.5.8/server/main.py
 +    s.close()
 +
  def main():
-     global bm_server
+-    global bm_server
++    global bm_server, bm_server_addr
  
+     usage = "Usage: %s [-p <pidfile>] [-l <logfile>] [-d] [-c <configfile>]" % sys.argv[0]
+     parser = OptionParser(usage=usage)
+@@ -144,6 +152,7 @@
+         else:
+             ui = UserInterfaceNoAuth(builder_manager, bm, dbm, cfg)
+             bm_server = AuthedXMLRPCServer.AuthedXMLRPCServer((hostname, port))
++        bm_server_addr = (hostname,port)
+     except socket.error, e:
+         if e[0] == 98:      # Address already in use
+             print "Error: couldn't bind to address '%s:%s'.  Is the server already running?" % (hostname, port)
diff --git a/plague.spec b/plague.spec
index 3f1ec21..cbd7c16 100644
--- a/plague.spec
+++ b/plague.spec
@@ -6,7 +6,7 @@ BuildArch: noarch
 Summary: Distributed build system for RPMs
 Name: plague
 Version: 0.4.5.8
-Release: 24%{?dist}
+Release: 25%{?dist}
 License: GPLv2+
 Group: Development/Tools
 #Source: http://fedoraproject.org/projects/plague/releases/%{name}-%{version}.tar.bz2
@@ -185,6 +185,9 @@ mkdir -p $RPM_BUILD_ROOT/var/lib/plague/builder
 
 
 %changelog
+* Thu Apr 23 2015 Michael Schwendt <mschwendt at fedoraproject.org> - 0.4.5.8-25
+- Fix non-SSL shutdown of server and builder.
+
 * Sat Mar 14 2015 Michael Schwendt <mschwendt at fedoraproject.org> - 0.4.5.8-24
 - Rebuild with fixed patch file.
 
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/plague.git/commit/?h=master&id=448577e193c844ddfc9bcc46ceefee997bf9b143


More information about the scm-commits mailing list