Currently the way that phase2 builders are trigger (deep and performance) only the change that was actually built is passed into the second phase. This is correct because multiple changes may be combined/collapsed into a single build (changes are queued up while the build system is busy). In order to handle the fact that the build system actually only built the last change in the build object (build object can contain N number of changes), the last change is the only change that the phase2 builders are notified about (http://hg.mozilla.org/tamarin-redux/file/tip/build/buildbot/master/custom/buildbot_ext/status/client.py#l275) The problem here is that the phase2 builders look at the modified files for the change to see if they are of interest and therefore should trigger a build. This means that the phase2 builders are only looking at the changed files of the last change and not all of the files that were modified. PhaseOneListener.buildFinished() needs to: 1) only submit the change that was actually built (currently done) 2) generate a complete list of changed files across all changes in the build and pass that into _writeBuildRequest()
This issue occasionally causes builds that should have triggered performance and deep testing to not run. It is much more likely to be an issue with not running performance since the list of files that will trigger a performance run is much more restrictive than the deep phase: http://hg.mozilla.org/tamarin-redux/annotate/tip/build/buildbot/master/commonsteps.py#l48
Created attachment 443895 [details] [diff] [review] patch Each build that is built can actually be a combined set of build requests. Previously we would only look at the last request, which is the rev# that is actually built. Need to set the list of files that were changed to be a list of all files that were changed in the build and not a list of the files that were in the last change of the build.
Comment on attachment 443895 [details] [diff] [review] patch pushed as tr changeset 4619:b113ab8e7b1f