# # # patch "monotone.py" # from [e2fa7b49375e3a5448d0c657d0087a8cf571184b] # to [8f27d174e3e40847275d0fcc28ea1065d972510c] # # patch "wrapper.py" # from [b9277f3e8636318e0aa6cda2f6c2c8d9e195bce9] # to [3b1dd4c69017b12d2fbbc2ffc421dd3735424c94] # ============================================================ --- monotone.py e2fa7b49375e3a5448d0c657d0087a8cf571184b +++ monotone.py 8f27d174e3e40847275d0fcc28ea1065d972510c @@ -1,7 +1,8 @@ import utility -import string import urllib +import signal +import string import pipes import sets import sha @@ -48,8 +49,11 @@ try: self.process.tochild.close() self.process.fromchild.close() + if self.process.poll() == -1: + # the process is still running, so kill it. + os.kill(self.process.pid, signal.SIGKILL) self.process.wait() - except: pass + except: def run(self, command, args): if self.process == None: self.start() enc = "l%d:%s" % (len(command), command) ============================================================ --- wrapper.py b9277f3e8636318e0aa6cda2f6c2c8d9e195bce9 +++ wrapper.py 3b1dd4c69017b12d2fbbc2ffc421dd3735424c94 @@ -5,12 +5,13 @@ import mimetypes import urllib import os.path -from monotone import Monotone import template import tarfile import os import re +from monotone import Monotone + # paranoid sane_uri_re = re.compile('^\w+$') @@ -94,10 +95,8 @@ } def cleanup(req, vars): - req.log_error("testing: %s" % (str(vars))) mt = vars['mt'] mt.automate.stop() - req.log_error("survived deletion") del mt def handler(req): @@ -122,8 +121,7 @@ req.content_type = "text/html" vars = { 'mt' : Monotone(config.monotone, config.dbfile) } req.register_cleanup(cleanup, (req, vars)) - mt = Monotone(config.monotone, config.dbfile) - template = psp.PSP(req, filename=uri, vars={'mt':mt}) + template = psp.PSP(req, filename=uri, vars=vars) template.run() return apache.OK except ValueError: