Ticket #737 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

Stale slave connection breaks reconfig

Reported by: catlee Owned by: catlee
Priority: major Milestone: 0.8.0
Version: master Keywords:
Cc:

Description

If one of the slaves has a stale connection, then a reconfig will break because of the exception raised.

	    dl = [s.updateSlave() for s in self.slaves.values()]
	  File "/tools/buildbot-catlee/buildbot/buildbot/buildslave.py", line 141, in updateSlave
	    return self.sendBuilderList()
	  File "/tools/buildbot-catlee/buildbot/buildbot/buildslave.py", line 428, in sendBuilderList
	    d = AbstractBuildSlave.sendBuilderList(self)
	  File "/tools/buildbot-catlee/buildbot/buildbot/buildslave.py", line 329, in sendBuilderList
	    d = self.slave.callRemote("setBuilderList", blist)
	  File "/tools/buildbot-catlee/lib/python2.6/site-packages/Twisted-9.0.0-py2.6-linux-i686.egg/twisted/spread/pb.py", line 331, in callRemote
	    _name, args, kw)
	  File "/tools/buildbot-catlee/lib/python2.6/site-packages/Twisted-9.0.0-py2.6-linux-i686.egg/twisted/spread/pb.py", line 810, in _sendMessage
	    raise DeadReferenceError("Calling Stale Broker")
	twisted.spread.pb.DeadReferenceError: Calling Stale Broker

Not sure what the best way to handle this is. Would something like this be appropriate?

diff --git a/buildbot/master.py b/buildbot/master.py
index fe7ba1b..c67e95e 100644
--- a/buildbot/master.py
+++ b/buildbot/master.py
@@ -244,7 +244,11 @@ class BotMaster(service.MultiService):
 
     def _updateAllSlaves(self):
         """Notify all buildslaves about changes in their Builders."""
-        dl = [s.updateSlave() for s in self.slaves.values()]
+        dl = []
+        for s in self.slaves.values():
+            d = s.updateSlave()
+            d.addErrback(log.err)
+            dl.append(d)
         return defer.DeferredList(dl)
 
     def shouldMergeRequests(self, builder, req1, req2):

Change History

comment:1 Changed 3 years ago by dustin

  • Owner set to catlee
  • Status changed from new to assigned

That looks correct to me.

comment:2 Changed 3 years ago by catlee

  • Status changed from assigned to closed
  • Resolution set to fixed

Fixed by 808613acbd3c920de367ec85eb5494edb5dd9351

Note: See TracTickets for help on using tickets.