extras-buildsys/server BuildMaster.py, 1.35, 1.35.2.1 Builder.py, 1.20.2.3, 1.20.2.4 PackageJob.py, 1.31.2.6, 1.31.2.7 Repo.py, 1.16.2.2, 1.16.2.3 main.py, 1.14.2.1, 1.14.2.2
Daniel Williams (dcbw)
fedora-extras-commits at redhat.com
Tue Nov 29 06:36:46 UTC 2005
Author: dcbw
Update of /cvs/fedora/extras-buildsys/server
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv27896/server
Modified Files:
Tag: STABLE_0_4
BuildMaster.py Builder.py PackageJob.py Repo.py main.py
Log Message:
2005-11-29 Dan Williams <dcbw at redhat.com>
* Add a traceback server that listens on a Unix socket
and writes backtraces for all threads to it. Disabled
by default.
Index: BuildMaster.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/BuildMaster.py,v
retrieving revision 1.35
retrieving revision 1.35.2.1
diff -u -r1.35 -r1.35.2.1
--- BuildMaster.py 9 Sep 2005 15:10:17 -0000 1.35
+++ BuildMaster.py 29 Nov 2005 06:36:43 -0000 1.35.2.1
@@ -24,6 +24,7 @@
import Repo
import copy
import Config
+from plague import DebugUtils
class BuildMaster(threading.Thread):
@@ -69,6 +70,7 @@
self._requeue_interrupted_jobs()
threading.Thread.__init__(self)
+ self.setName("BuildMaster")
def _requeue_interrupted_jobs(self):
""" Restart interrupted jobs from our db. """
@@ -391,6 +393,7 @@
return self._paused
def run(self):
+ DebugUtils.registerThreadName(self)
while self.should_stop == False:
# Write update status for jobs to the database
self._save_job_status()
Index: Builder.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/Builder.py,v
retrieving revision 1.20.2.3
retrieving revision 1.20.2.4
diff -u -r1.20.2.3 -r1.20.2.4
--- Builder.py 24 Nov 2005 22:39:04 -0000 1.20.2.3
+++ Builder.py 29 Nov 2005 06:36:43 -0000 1.20.2.4
@@ -28,6 +28,7 @@
import ArchJob
import EmailUtils
import Config
+from plague import DebugUtils
SUSPEND_NONE = 'none'
SUSPEND_TIMEOUT = 'timeout'
@@ -73,6 +74,7 @@
self._init_builder(target_list)
threading.Thread.__init__(self)
+ self.setName("Builder: %s" % address)
def _init_builder(self, target_list):
self._target_list = target_list
@@ -283,6 +285,7 @@
self._when_died = 0
def run(self):
+ DebugUtils.registerThreadName(self)
while not self._stop:
self._server_lock.acquire()
Index: PackageJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/PackageJob.py,v
retrieving revision 1.31.2.6
retrieving revision 1.31.2.7
diff -u -r1.31.2.6 -r1.31.2.7
--- PackageJob.py 21 Nov 2005 15:51:43 -0000 1.31.2.6
+++ PackageJob.py 29 Nov 2005 06:36:43 -0000 1.31.2.7
@@ -33,6 +33,7 @@
import BuilderManager
import ArchJob
from plague import ArchUtils
+from plague import DebugUtils
CVS_CMD = "/usr/bin/cvs"
MAKE_CMD = "/usr/bin/make"
@@ -76,8 +77,10 @@
self._end_stage = end_stage
self._pkg_job._set_cur_stage(start_stage)
threading.Thread.__init__(self)
+ self.setName("PackageJob: %s/%s" % (pkg_job.uid, pkg_job.package))
def run(self):
+ DebugUtils.registerThreadName(self)
while not self._pkg_job.is_done() and not self._pkg_job.get_cur_stage() == self._end_stage:
self._pkg_job.process()
Index: Repo.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/Repo.py,v
retrieving revision 1.16.2.2
retrieving revision 1.16.2.3
diff -u -r1.16.2.2 -r1.16.2.3
--- Repo.py 1 Nov 2005 14:47:37 -0000 1.16.2.2
+++ Repo.py 29 Nov 2005 06:36:44 -0000 1.16.2.3
@@ -23,6 +23,7 @@
import fcntl
import stat
import EmailUtils
+from plague import DebugUtils
class Repo(threading.Thread):
@@ -64,6 +65,7 @@
self._repo_script = script
threading.Thread.__init__(self)
+ self.setName("Repo: %s" % target_str)
def target_cfg(self):
return self._target_cfg
@@ -178,6 +180,7 @@
self._pobj = None
def run(self):
+ DebugUtils.registerThreadName(self)
while self._stop == False:
# We have 3 lock levels:
#
Index: main.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/main.py,v
retrieving revision 1.14.2.1
retrieving revision 1.14.2.2
diff -u -r1.14.2.1 -r1.14.2.2
--- main.py 27 Oct 2005 14:35:02 -0000 1.14.2.1
+++ main.py 29 Nov 2005 06:36:44 -0000 1.14.2.2
@@ -22,8 +22,10 @@
from plague import AuthedXMLRPCServer
from plague import HTTPServer
from plague import daemonize
+from plague import DebugUtils
import SimpleXMLRPCServer
from optparse import OptionParser
+import threading
sys.path.append('/usr/share/plague/server')
@@ -96,12 +98,24 @@
print "You need at least one target to do anything useful."
sys.exit(3)
+ hostname = cfg.get_str("General", "hostname")
+
+ # Start the debugging server
+ use_tbs = False
+ try:
+ use_tbs = cfg.get_bool("General", "traceback_server")
+ if use_tbs:
+ tbs_address = "/tmp/plague-server-debug-%s" % hostname
+ tbs = DebugUtils.ThreadTracebackServer(tbs_address)
+ tbs.start()
+ except Config.BaseConfig.ConfigError:
+ pass
+
dbm = DBManager.DBManager(cfg)
builder_manager = BuilderManager.BuilderManager(cfg)
# Create the BuildMaster thread
- hostname = cfg.get_str("General", "hostname")
bm = BuildMaster.BuildMaster(builder_manager, dbm, cfg)
bm.start()
@@ -137,6 +151,12 @@
srpm_server = HTTPServer.PlgHTTPServerManager((hostname, SRPM_SERVER_PORT), http_dir, srpm_server_certs)
srpm_server.start()
+ # Create dummy thread just to register main thread's name
+ dummy = threading.Thread()
+ dummy.setName("MainThread")
+ DebugUtils.registerThreadName(dummy)
+ del dummy
+
print "Build Server accepting requests on %s:%d.\n" % (hostname, port)
try:
bm_server.serve_forever()
@@ -145,6 +165,7 @@
print "Shutting down..."
bm.stop()
srpm_server.stop()
+ tbs.stop()
print "Done."
os._exit(0)
More information about the fedora-extras-commits
mailing list