Making the next build be a clobber
Use this if the dependency system breaks (but please also file a bug about fixing the dependency system!)
Obviously, clobber builds take longer than depend builds, so please only use this functionality when necessary; also, please coordinate clobbering on IRC, so builds aren't clobbered multiple times for the same reason. To help mitigate, it might be useful to have a sheriff submit the clobber request or in the case of a checkin that you know will break Tinderbox, the committer.
This section should be merged with https://wiki.mozilla.org/Clobbering_the_Tree
Stopping a build that is doomed
Forcing a new nightly build
In order to reduce interruptions and allow developers to clobber Tinderbox builds, we've deployed what we're calling "CLOBBER support" to the Mozilla Build Farm.
This allows developers to request clobber builds on various Tinderboxen.
Common reasons for clobbers include:
- Moving files/directories in ways that cause the dependency system to break
- Needing to respin a nightly build that has an obvious defect that prevents the nightly from being used
NOTE: clobbering a tinderbox will also clobber the corresponding unit test machine, i.e. you do *not* also have to clobber the buildbot machine. This is useful when code changes (e.g. dependencies) require all similar tinderboxen to be restarted. It is less useful when a single machine is simply hung.
To clobber a Tinderbox
1. After your code goes in...
2. Checkout the relevant branch/directory of mozilla/tools/tinderbox-configs.
To find the relevant branch, go to the last Tinderbox log of the build you want to clobber; near where the mozconfig is printed out, the versions and branches of the Tinderbox configs are also printed out. An example from a 1.8 build tinderbox:
USERNAME=cltbld USERPROFILE=C:\Documents and Settings\cltbld WINDIR=C:\WINDOWS XPCOM_DEBUG_BREAK=warn _=/bin/sh __COMPAT_LAYER=EnableNXShowUI -->Tinderbox Config Info<-------------------------- Begin: Mon Feb 12 17:41:39 2007 cvs stat cvs status: Examining . =================================================================== File: mozconfig Status: Up-to-date Working revision: 220.127.116.11 Repository revision: 18.104.22.168 /cvsroot/mozilla/tools/tinderbox-configs/firefox/win32/mozconfig,v Sticky Tag: MOZILLA_1_8_BRANCH (branch: 1.2.6) Sticky Date: (none) Sticky Options: (none) =================================================================== File: tinder-config.pl Status: Up-to-date Working revision: 22.214.171.124 Repository revision: 126.96.36.199 /cvsroot/mozilla/tools/tinderbox-configs/firefox/win32/tinder-config.pl,v Sticky Tag: MOZILLA_1_8_BRANCH (branch: 1.2.10) Sticky Date: (none) Sticky Options: (none) End: Mon Feb 12 17:41:40 2007 -->END Tinderbox Configuration Information<-------------- -->mozconfig<---------------------------------------- # ## hostname: pacifica-vm ## uname: WINNT PACIFICA-VM 5.2 3790 xx I386 etc.
So, in the above case, you'd want to check out mozilla/tools/tinderbox-configs/firefox/win32 on the MOZILLA_1_8_BRANCH.
3. If there's not a CLOBBER file in that directory (case does matter), cvs add one. Edit the file with the reason (and hopefully a bug number?) for the clobber request.
4. Check it back in; include the reason in the commit message (yes, this is duplicated from the step above)
5. Annotate the build on Tinderbox to let others know it will (should be ;-) a clobber build, and thus will take longer to complete.
6. If you're feeling benevolent, please stop by #build to let us know you requested a clobber, so we know to expect it
7. Next build should be a clobber build; if it's not, please stop by #build to let us know, so we can track down why it didn't work
To clobber a unit test machine
Same as the above for tinderbox, but the CLOBBER file you need to create/update lives in a different directory in CVS. Check out the following module:
You'll find the following directory structure in the CLOBBER module:
To clobber the , e.g., Win2k3 unit test box, you would update the following CLOBBER file:
(This section only applies to CVS, right?)
Due to deficiencies in Tinderbox, some Tinderboxen will not comply with clobber requests. Tinderboxen that are likely to not obey are those which do not produce nightly builds of any kind (fxdbug-win32-tbox, for example).
We are currently working through making it so all Tinderboxen pay attention to clobber requests. If you find one that does not, please let us know, so we can add it to the migration list.