[Buildbot-commits] [Buildbot] #2183: SVNPoller stops after failure

Buildbot nobody at buildbot.net
Thu Jan 26 04:12:45 UTC 2012


#2183: SVNPoller stops after failure
---------------------+--------------------
Reporter:  fgsch     |       Owner:
    Type:  defect    |      Status:  new
Priority:  critical  |   Milestone:  0.8.6
 Version:  0.8.5     |  Resolution:
Keywords:            |
---------------------+--------------------

Comment (by dustin):

 How often does your poller run?

 Try this:
 {{{
 #!patch
 diff --git a/master/buildbot/changes/svnpoller.py
 b/master/buildbot/changes/svnpoller.py
 index 93c14bb..70845b2 100644
 --- a/master/buildbot/changes/svnpoller.py
 +++ b/master/buildbot/changes/svnpoller.py
 @@ -162,10 +162,16 @@ class SVNPoller(base.PollingChangeSource,
 util.ComparableMixin):

      def getProcessOutput(self, args):
          # this exists so we can override it during the unit tests
 +        log.msg("svnpoller %s GPO %s" % (self.svnurl, args))
          d = utils.getProcessOutput(self.svnbin, args, self.environ)
 +        @d.addBoth
 +        def report(x):
 +            log.msg("svnpoller %s GPO %s -> %s" % (self.svnurl, args, x))
 +            return x
          return d

      def get_prefix(self):
 +        log.msg("svnpoller %s get_prefix" % (self.svnurl,))
          args = ["info", "--xml", "--non-interactive", self.svnurl]
          if self.svnuser:
              args.extend(["--username=%s" % self.svnuser])
 @@ -201,6 +207,7 @@ class SVNPoller(base.PollingChangeSource,
 util.ComparableMixin):
          return d

      def get_logs(self, _):
 +        log.msg("svnpoller %s get_logs" % (self.svnurl,))
          args = []
          args.extend(["log", "--xml", "--verbose", "--non-interactive"])
          if self.svnuser:
 @@ -212,6 +219,7 @@ class SVNPoller(base.PollingChangeSource,
 util.ComparableMixin):
          return d

      def parse_logs(self, output):
 +        log.msg("svnpoller %s parse_logs" % (self.svnurl,))
          # parse the XML output, return a list of <logentry> nodes
          try:
              doc = xml.dom.minidom.parseString(output)
 @@ -223,6 +231,7 @@ class SVNPoller(base.PollingChangeSource,
 util.ComparableMixin):


      def get_new_logentries(self, logentries):
 +        log.msg("svnpoller %s get_new_logentries" % (self.svnurl,))
          last_change = old_last_change = self.last_change

          # given a list of logentries, calculate new_last_change, and
 @@ -275,6 +284,7 @@ class SVNPoller(base.PollingChangeSource,
 util.ComparableMixin):
          return where

      def create_changes(self, new_logentries):
 +        log.msg("svnpoller %s create_changes" % (self.svnurl,))
          changes = []

          for el in new_logentries:
 @@ -348,6 +358,7 @@ class SVNPoller(base.PollingChangeSource,
 util.ComparableMixin):

      @defer.deferredGenerator
      def submit_changes(self, changes):
 +        log.msg("svnpoller %s submit_changes" % (self.svnurl,))
          for chdict in changes:
              wfd = defer.waitForDeferred(self.master.addChange(src='svn',
                                                                **chdict))
 @@ -355,6 +366,7 @@ class SVNPoller(base.PollingChangeSource,
 util.ComparableMixin):
              wfd.getResult()

      def finished_ok(self, res):
 +        log.msg("svnpoller %s finished_ok" % (self.svnurl,))
          if self.cachepath:
              f = open(self.cachepath, "w")
              f.write(str(self.last_change))
 }}}

-- 
Ticket URL: <http://trac.buildbot.net/ticket/2183#comment:4>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the Commits mailing list