[Buildbot-devel] buildbot doesn't fully reconfigure on SIGHUP?
bill at baddogconsulting.com
Fri Oct 5 21:46:11 UTC 2012
On Oct 4, 2012, at 11:25 PM, Jared Grubb <jared.grubb at gmail.com> wrote:
> On 3 Oct 2012, at 14:38, Dan Kegel <dank at kegel.com> wrote:
>> On Wed, Oct 3, 2012 at 2:21 PM, Tom Prince <tom.prince at ualberta.net> wrote:
>>>> The manual claims buildbot reloads config files when you send it a SIGHUP,
>>>> but I'm not seeing that here. I mean, sure, it says it's doing it, but
>>>> if the config file adds a new buildslave, that won't show up until
>>>> you actually stop the buildbot and start it again.
>>>> Has anyone else seen that? I don't see an exact match in the bug tracker.
>>> My guess is that you import some file that defines the buildslaves.
>>> buildbot's reconfig is implemented by rerunning the code in the
>>> master.cfg file. The nature of python is such that an import only
>>> loads the indicated file the first time it is run (so if you change the
>>> file, python won't see it). This can be somewhat worked around by
>>> calling reload, although the behavior of that can be tricky.
>> Correct in one!
>> Following your hint, I see that
>> lists some of the issues with reload.
>> I will chalk this up as another reason to rewrite our buildbot config.
> I personally use exec_file instead of import in my master.cfg .. not ideal, but works ok for this purpose.
I use a stanza like this:
And then either:
Or refer to each method by full name
This seems to work very reliably (for well over a year of reconfigs)
The trick is to remember that
from abc import xyz
Won't get reloaded, but is the equivalent of:
xyz = abc.xyz
if you add:
reload(abc) before xyz=abc.xyz, then that does that trick.
More information about the devel