[Buildbot-devel] contrib/git_buildbot.py reports connection lost handling multiple revisions

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Thu Feb 25 20:44:19 UTC 2010

On 10:31 am, daniel.thompson at st.com wrote:
>On 25/02/10 05:09, Dustin J. Mitchell wrote:
>>On Wed, Feb 24, 2010 at 4:44 AM, Daniel THOMPSON 
>><daniel.thompson at st.com> wrote:
>>>I can probably modify the script to make a new connection for each
>>>change we want to process but I'm not familiar enough with the design 
>>>assess if this is an elegant approach. I suspect not...
>>Check out the github_buildbot.py script, which we're using for
>>buildbot, and which I know can handle submission of simultaneous
>>commits.  If you figure out what's wrong, I'll be happy to merge the
>>fix upstream.
>The difference is that git_buildbot.py uses callLater() to avoid
>exploding the stack and github_buildbot.py does not.
>The change to introduce callLater() is fairly recent (Dec-2009):
>* http://buildbot.net/trac/ticket/645
>I have applied the inverse patch to my copy of git_buildbot.py and it 
>now operating correctly.
>I'm not really skilled enough to debug the new code and make the
>recursion avoidance work (nor am I blessed with sufficient time to
>become so). Thus for for now I'm going to stick with the inverse patch.
>However, given the reported for #645 has gone quiet, if you need 
>to test an alternative way to break the recursion then I'd be very 
>to do so.

At PyCon, several of us sprinted on resolving this issue once and for 
all in the implementation of Deferred.  The ticket for the general issue 
is here:


The work is not yet complete, but we expect that the implementation 
addresses most cases at this point.  Any testing that anyone can do of 
this code would be quite helpful.  Particularly, if anything is broken, 
simplified examples which demonstrate the problem would be massively 
helpful.  Much of the time at the sprint was spent looking at very 
complicated code (ie, involving large piles of application-specific 
code) and trying to distill the problem to a simpler example which just 
used Deferreds.

The ticket refers to the branch where the most recent version of the 
code can be found.  Currently this is the iterative-deferreds-411-3 
branch, which translates to this SVN URL:


It can also be retrieved from the bzr mirror, if anyone prefers that. 
Instructions for that can be found here:



More information about the devel mailing list