extras-buildsys/server BuildMaster.py, 1.36, 1.37 Builder.py, 1.24, 1.25 PackageJob.py, 1.38, 1.39 Repo.py, 1.19, 1.20 main.py, 1.16, 1.17
Daniel Williams (dcbw)
fedora-extras-commits at redhat.com
Tue Nov 29 06:41:53 UTC 2005
Author: dcbw
Update of /cvs/fedora/extras-buildsys/server
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28008/server
Modified Files:
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.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- BuildMaster.py 26 Nov 2005 06:10:22 -0000 1.36
+++ BuildMaster.py 29 Nov 2005 06:41:51 -0000 1.37
@@ -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.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- Builder.py 26 Nov 2005 06:10:22 -0000 1.24
+++ Builder.py 29 Nov 2005 06:41:51 -0000 1.25
@@ -28,6 +28,7 @@
import ArchJob
import EmailUtils
import Config
+from plague import DebugUtils
SUSPEND_NONE = 'none'
SUSPEND_TIMEOUT = 'timeout'
@@ -72,6 +73,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
@@ -284,6 +286,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.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- PackageJob.py 26 Nov 2005 06:34:50 -0000 1.38
+++ PackageJob.py 29 Nov 2005 06:41:51 -0000 1.39
@@ -32,6 +32,7 @@
import BuilderManager
import ArchJob
from plague import ArchUtils
+from plague import DebugUtils
import yum
import repomd.mdErrors
@@ -77,8 +78,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.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.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- Repo.py 26 Nov 2005 06:10:22 -0000 1.19
+++ Repo.py 29 Nov 2005 06:41:51 -0000 1.20
@@ -23,6 +23,7 @@
import fcntl
import stat
import EmailUtils
+from plague import DebugUtils
class Repo(threading.Thread):
@@ -88,6 +89,7 @@
self._repo_script = script
threading.Thread.__init__(self)
+ self.setName("Repo: %s" % target_str)
def target_cfg(self):
return self._target_cfg
@@ -292,6 +294,7 @@
self._pobj = None
def run(self):
+ DebugUtils.registerThreadName(self)
repo_changed = False
while self._stop == False:
# We have 3 locked operations, signified by self._lock_count:
Index: main.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/main.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- main.py 20 Nov 2005 18:42:46 -0000 1.16
+++ main.py 29 Nov 2005 06:41:51 -0000 1.17
@@ -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