On 2012-03-01, at 03:37, Osztrogonac Csaba <[email protected]> wrote:
> Hi All, > > To avoid overloading svn.webkit.org again and again with zillion svn > checkout after "rm -rf"-ed working copies on the bots, I stopped all > of our clobbered buildbot. > > After unbanning our network, I'll copy a locally tar-ed WebKit-svn > copy to all bots and then restart them one by one not to overload > svn.webkit.org. You can get a relatively up to date working copy from <http://nightly.webkit.org/files/WebKit-SVN-source.tar.bz2>. > And I'm thinking about how can we make buildbots more robust in the future. > My first idea is that we should setup git mirrors for all WebKit port, and > then make buildbots use these mirrors instead of svn.webkit.org. To do it, > we need to modify the master.cfg a little bit. There are two different options that we're investigating to address this "thundering herd" problem that tends to kill SVN after buildbot downtime: 1) Teach build slaves to fetch and unpack <http://nightly.webkit.org/files/WebKit-SVN-source.tar.bz2> rather than using "svn checkout". 2) Add additional hardware and load-balance svn.webkit.org across several machines so that the spike in load is distributed. I have a rough version of the former working locally on a test master I set up. I should be able to get it cleaned up enough to be usable later this week. The latter is obviously a more involved solution but would also generally improve SVN performance. I expect that we'll continue to pursue that solution regardless. > --------------------------------------------------------------------------------------------------------- > class Factory(factory.BuildFactory): > def __init__(self, platform, configuration, architectures, buildOnly, > features=None, **kwargs): > factory.BuildFactory.__init__(self) > self.addStep(ConfigureBuild, platform=platform, > configuration=configuration, architecture=" ".join(architectures), > buildOnly=buildOnly, features=features) > self.addStep(CheckOutSource) > self.addStep(KillOldProcesses) > ... > --------------------------------------------------------------------------------------------------------- > > To migrate the bots simple from svn to git isn't a good solution, because in > this case > we'll loose the svn revision number on the waterfall. My idea is that replace > the > "self.addStep(CheckOutSource)" to calling a shell/perl/python script which > updates > the local copy from the Qt/GTK/Apple/Chromium/... git mirror with the > following way: > - git fetch > - git reset --hard `git svn find-rev > r<svn-revision-number-got-from-the-master>` > > I'm going to implement this initial git updater script this week and try to > migrate our > bots on build.webkit.sed.hu to use it. If we manage to make it stable, we can > make > build.webkit.org slaves to use it too. How does it sound? Any better idea? Pulling from git instead of SVN is certainly worth considering, but I wouldn't be surprised if this simply shifted the performance issue from svn.webkit.org to git.webkit.org. - Mark _______________________________________________ webkit-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

