Ticket #349 (closed defect: duplicate)
pressing the ping button on the web interface causes the slave to be unavailable
| Reported by: | xenotron | Owned by: | warner |
|---|---|---|---|
| Priority: | minor | Milestone: | 0.7.10 |
| Version: | 0.7.7 | Keywords: | ping |
| Cc: |
Description
After pressing the Ping button on the web interface, no more builds are willing to start. The master side SlaveBuilder? instance does not change its state attribute back to IDLE after PINGING and isAvailable() returns False.
Change History
Note: See
TracTickets for help on using
tickets.
![[Buildbot Logo]](/chrome/site/header-text-transparent.png)
One possible solution is eliminating the PINGING state from buildbot.process.builder.SlaveBuilder?. This causes the problem, and this state can interfere with the BUILDING state. A quick fix for the problem is commenting out 1 line in the buildbot.process.builder.SlaveBuilder? class:
def ping(self, timeout, status=None): """Ping the slave to make sure it is still there. Returns a Deferred that fires with True if it is. @param status: if you point this at a BuilderStatus, a 'pinging' event will be pushed. """ #self.state = PINGING # commenting out this line solves the problem. newping = not self.ping_watchers d = defer.Deferred() self.ping_watchers.append(d) if newping: if status:Ticket #85 and #155 cover probably the same problem.