[Buildbot-commits] [SPAM] [Buildbot] #694: Infinite loop int the slave with Mercurial

Buildbot buildbot-devel at lists.sourceforge.net
Wed Jan 27 13:09:16 UTC 2010


#694: Infinite loop int the slave with Mercurial
---------------------+------------------------------------------------------
Reporter:  kalessin  |       Owner:                                 
    Type:  defect    |      Status:  new                            
Priority:  critical  |   Milestone:  ongoing                        
 Version:  0.7.12    |    Keywords:  slave, mercurial, infinite loop
---------------------+------------------------------------------------------
 Hello,

 I have set up a buildbot for my first time (you do cool things !) and I
 have fallen into a nasty bug.

 I'm using buidlbot (slave and master) on Debian squeeze with mercurial:

 {{{
 (chroot)root at kalessin:/tmp# buildbot --version
 Buildbot version: 0.7.11p3
 Twisted version: 9.0.0
 (chroot)root at kalessin:/tmp# hg --version
 Mercurial Distributed SCM (version 1.4.1)

 Copyright (C) 2005-2009 Matt Mackall <mpm at selenic.com> and others
 This is free software; see the source for copying conditions. There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
 PURPOSE.
 (chroot)root at kalessin:/tmp#
 }}}

 Whenever a new build was launched the slave started an infinite loop. The
 reason was here :

 http://github.com/djmitche/buildbot/blob/master/buildbot/slave/commands.py#L2915

 You compare two directories paths, but done this way /foo/bar and
 /foo/bar/ appears to be differents. In my case when the condition was
 true, the slave restarted a complete checkout of the code, falling again
 in the condition, and again, and again, and again...

 I have resolved the problem, by setting my repourl in my master.cfg
 without the ending slash :

 {{{
 #!python
 from buildbot.process import factory
 from buildbot.steps.source import Mercurial
 from buildbot.steps.shell import Compile, Configure, Test
 f1 = factory.BuildFactory()
 f1.addStep(Mercurial(repourl="/tmp/zia"))
 f1.addStep(Configure(command=["cmake", "."])) # do not use configure
 f1.addStep(Compile()) # make all
 f1.addStep(Test()) # make test
 }}}

 A more robust way to compare directories paths should be used.

 Please, find the log from both the slave and the master attached with this
 ticket. (due to the loop I have truncated them).

 Best Regards
 --
 Louis Opter <kalessin at kalessin.fr>

-- 
Ticket URL: <http://buildbot.net/trac/ticket/694>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the Commits mailing list