[Buildbot-devel] Buildbot-devel Digest, Vol 8, Issue 2

Ben Hearsum bhearsum at wittydomain.com
Fri Dec 15 00:12:31 UTC 2006


Yep. I had the same behaviour. I had one build from one builder going on
'linux1' and I tried to start a build on a different builder. It got queued on
'linux1' instead of starting on 'linux2'!

Minesh Patel wrote:
> Reply to 4. Multiple builds on the same host (Ben Hearsum)
> 
> I noticed this same problem, which ever slave connects first is the one
> that all the builders attempt to use. Try using slave locks to observe
> the behaviour.  This also causes a similar problem in that it uses the
> same slave as prior builds even though one is available. With respect to
> slave lock usage, I think the builders need to check which lock is
> available for it, grab it, and start the build. Instead I think it
> attempts to grab a slave, if the slave is busy and no free lock, it
> waits in it's queue.
> 
> Manny
> 
> 
> buildbot-devel-request at lists.sourceforge.net wrote:
>> Send Buildbot-devel mailing list submissions to
>> 	buildbot-devel at lists.sourceforge.net
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> 	https://lists.sourceforge.net/lists/listinfo/buildbot-devel
>> or, via email, send a message with subject or body 'help' to
>> 	buildbot-devel-request at lists.sourceforge.net
>>
>> You can reach the person managing the list at
>> 	buildbot-devel-owner at lists.sourceforge.net
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of Buildbot-devel digest..."
>>
>>
>> Today's Topics:
>>
>>    1. Re: update on the next release (and a suggestion) (Brian Warner)
>>    2. Re: update on the next release (and a suggestion) (Niklaus Giger)
>>    3. Bonsai Filter by E-Mail patch (Ben Hearsum)
>>    4. Multiple builds on the same host (Ben Hearsum)
>>    5. buildbot-0.7.5 released (Brian Warner)
>>    6. Re: maximiz (Isidoro Chadburn)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Wed, 06 Dec 2006 23:58:53 -0800 (PST)
>> From: Brian Warner <warner-buildbot at lothar.com>
>> Subject: Re: [Buildbot-devel] update on the next release (and a
>> 	suggestion)
>> To: niklaus.giger at member.fsf.org
>> Cc: buildbot-devel at lists.sourceforge.net
>> Message-ID: <20061206.235853.59483782.warner at lothar.com>
>> Content-Type: Text/Plain; charset=us-ascii
>>
>>   
>>> I am very interested in a few of the new features (e.g. SVNPoller,
>>> FileUp/Download and have tested them in my test environment. Also
>>> the trial tests pass without any errors on my GNU/Debian machine.
>>>
>>> Therefore I would like to ask if you could give us a hint when the next
>>> version will be out.
>>>     
>>
>> Very soon now. The reconfiguring-builders fix was the last big issue, which I
>> finally got done about a week ago. The only thing left on my list is to clean
>> up file upload/download a little bit (specifically adding some helpful error
>> messages if the slave is too old or if the target file cannot be found). My
>> current goal is to cut the release this coming weekend.
>>
>>   
>>> Another question is, that I would have found it nice to specify the
>>> attributes for a downloaded file, as I would like to download some test
>>> scripts which have to be executed on the slave.
>>>     
>>
>> So something like FileDownload(source, dest, mode=0755) ? Sure, I'd accept a
>> patch for that, after 0.7.5 is out. Don't write it just yet, as I'll probably
>> be changing FileDownload a little bit before the release, but as soon as
>> 0.7.5 is cut feel free to submit one.
>>
>>   
>>> And I would prefer to specify in a Shell step "./my_bash.sh", instead of [
>>> "/bin/bash", "my_bash.sh"].
>>>     
>>
>> If my_bash.sh has the executable bit set, then command=["./my_bash.sh"] ought
>> to work (assuming it has a #!/bin/bash line, of course).
>>
>>   
>>> Would you accept patches for this? Or do you consider it a too big security
>>> risk?
>>>     
>>
>>
>> I guess I should settle on how ShellCommands should be specified. I've
>> certainly had cases myself where I want to use shell metacharacters, things
>> like "scp ../*.deb host:~/public_html/" and similar. My hunch is that things
>> like that belong in a Makefile rather than in the Buildbot, and making it
>> difficult or annoying to use the full power of bash within ShellCommands is a
>> sort of passive/aggressive way to accomplish that :).
>>
>> There's not necessarily a security risk in string-based commands. The risk
>> comes when you are interpolating other strings into them, specifically
>> strings that come from a hostile party, where you get injection attacks and
>> games with passing shell metacharacters in through a string that was
>> "supposed" to be something simple. If you can only use argv array-based
>> ShellCommands, these threats are a lot less severe. But there aren't a whole
>> lot of places where we interpolate things into a string-based command
>> anyways, unless you're using WithProperties a lot.
>>
>>
>> Would it make sense for this test script that you want to download and
>> execute on the slave instead be checked in to your source tree? I'd like to
>> understand the use case a bit more before coming to a decision about whether
>> to encourage or discourage string-based commands.
>>
>> [note: by "string-base commands" I mean something like
>> ShellCommand(command="ls *.foo >stuff.txt") . When you pass a non-array to
>> command=, the buildslave pretends you had written command=["/bin/sh", "-c",
>> "ls *.foo >stuff.txt"] instead.]
>>
>> cheers,
>>  -Brian
>>
>>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Thu, 7 Dec 2006 23:11:54 +0100
>> From: Niklaus Giger <niklaus.giger at member.fsf.org>
>> Subject: Re: [Buildbot-devel] update on the next release (and a
>> 	suggestion)
>> To: Brian Warner <warner-buildbot at lothar.com>
>> Cc: buildbot-devel at lists.sourceforge.net
>> Message-ID: <200612072311.55254.niklaus.giger at member.fsf.org>
>> Content-Type: text/plain;  charset="iso-8859-1"
>>
>> Am Donnerstag, 7. Dezember 2006 08:58 schrieb Brian Warner:
>> <...>
>>   
>>> So something like FileDownload(source, dest, mode=0755) ? Sure, I'd accept
>>> a patch for that, after 0.7.5 is out. Don't write it just yet, as I'll
>>> probably be changing FileDownload a little bit before the release, but as
>>> soon as 0.7.5 is cut feel free to submit one.
>>>     
>> Yes, that is what I am looking for. And I have time to wait.
>>
>>   
>>>> And I would prefer to specify in a Shell step "./my_bash.sh", instead of
>>>> [ "/bin/bash", "my_bash.sh"].
>>>>       
>>> If my_bash.sh has the executable bit set, then command=["./my_bash.sh"]
>>> ought to work (assuming it has a #!/bin/bash line, of course).
>>>     
>> Yes, that why I want to be able to specify the mode. The example above is just 
>> my current work around.
>> <..>
>>   
>>> Would it make sense for this test script that you want to download and
>>> execute on the slave instead be checked in to your source tree? I'd like to
>>> understand the use case a bit more before coming to a decision about
>>> whether to encourage or discourage string-based commands.
>>>     
>> I do not have a need for string based commands. I just want to be able to 
>> download scripts and configuration. If you want to study my setup have a look 
>> at the (a little bit outdated) 
>> http://ngiger.dyndns.org/xenomai-data/xeno_buildbot.pdf
>> The buildbot itself may be reached at http://ngiger.dyndns.org:8010/
>>
>> The FileUp/Download commands are all what I need to be able to keep (backup in 
>> Subversion repository) all my test scripts, kernel/.config etc in one place 
>> (e.g. the master) and not distributed on several slaves. I have no write 
>> privilege (never asked for it neither) in the main Xenomai (realtime 
>> extension to the Linux kernel) repository.
>>
>> Also I like to have a separate test installation for my buildbot. And with 
>> scripts/configs scattered over test/stable and different master/slaves I 
>> sometimes just got a little bit lost, which config file /scripts was already 
>> updated and which not.
>>
>> Realtime kernel often have very specific (non public) HW, e.g. I am working in 
>> a industrial manufacturer for plastic injection machines, where machines 
>> costing (100k - 1M US$) are controlled by custom PPC405 based controller 
>> card. Upgrade cycles are quite long and we prefer to stick with known good 
>> release (unfortunately still a proprietary OS) for years.
>>
>> The embedded people like to tweak their environment, as each project has 
>> different needs (e.g. no harddisk, only 4 MB of memory)
>> The whole setup till you can really test an embedded board involves a lot,
>> e.g. 
>> LinuxFrom Scratch (or a Debian debootstrag or ...)
>> Linux kernel source +
>> Xenomai patches +
>> probably board specific patches
>> a kernel config
>> Xenomai application code
>> optionally RTnet (another project using Xenomai for RealTime Networking), 
>> pulled in from another Subversion repository
>> Bash or BusyBox
>> a RootFileSystem
>> Ethernet and/or serial connection to the board
>> cross compilation (for various architectures)
>> Remotely actuated PowerOn switch
>>
>> It took me quite a few weeks to get the buildbot started. Keeping it up to 
>> date with all the changes + trying to improve it + trying to cover more 
>> corner cases (unit test, system test) is quite time consuming, but helps to 
>> catch a few (but far from all) errors.
>>
>> In short a lot of things which just were better not integrated in the main 
>> trunk. And till now my whole buildbot setup is not yet mature enough to be 
>> shared. Once I get more people interested into running their own slave and we 
>> are able to come up with common scripts to cover the different variants I 
>> have no objection into getting my stuff into the Xenomai code base. 
>>
>> I think that the buildbot I am running is quite complex as it involves 
>> (remote) system testing. But I found no better tool, and Buildbot served me 
>> fine and I really appreciated how you integrated a lot of suggestions from 
>> the mailing list. And someday I will attack also the problem how to trigger a 
>> build when one of several code sources are needed for a single project. I 
>> think in this respect CruiseControl has some advantages and a colleague of 
>> mine is using successfully also. But it has neither distributed slaves nor 
>> a "try" feature. The last two features made me choose buildbot.
>>
>> Best regards
>>
>>   
> 
> !DSPAM:35,4581e4a4491186964617024!
> 
> 
> ------------------------------------------------------------------------
> 
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> 
> !DSPAM:35,4581e4a4491186964617024!
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Buildbot-devel mailing list
> Buildbot-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/buildbot-devel
> 
> 
> !DSPAM:35,4581e4a4491186964617024!




More information about the devel mailing list