Sheriffing/Sheriff Duty: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (Add johnath to sheriff duty)
(Bug 1082602)
 
(40 intermediate revisions by 19 users not shown)
Line 4: Line 4:
== How should I get ahold of people? ==
== How should I get ahold of people? ==
Try irc.mozilla.org, #developers and #build.
Try irc.mozilla.org, #developers and #build.
You may also want to contact the [[ReleaseEngineering:Sheriffing|RelEng Sheriff]]


== How do I change the mozilla tinderbox message of the day? ==
== How do I change the mozilla tinderbox message of the day? ==
* [http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox&hours=12&nocrap=1 Firefox tree]
* You can set the message using treestatus, see: https://wiki.mozilla.org/ReleaseEngineering/How_To/Close_or_Open_the_Tree
* [http://tinderbox.mozilla.org/showbuilds.cgi?tree=SeaMonkey&hours=12&nocrap=1 SeaMonkey tree]
 
Click on [http://tinderbox.mozilla.org/admintree.cgi?tree=Firefox Administrate Tinderbox Trees] at the bottom of the tinderbox page. Edit the html and set the message of day at the top of the page using the mozilla [https://bugzilla.mozilla.org/show_bug.cgi?id=sheriffpass tinderbox password].


== What kind of comments might the sheriff add to Tinderbox? ==
== What kind of comments might the sheriff add to Tinderbox? ==
Line 16: Line 15:
Developers wishing changes to the Mozilla tinderbox messages should communicate with the sheriff so that the changes can be coordinated.
Developers wishing changes to the Mozilla tinderbox messages should communicate with the sheriff so that the changes can be coordinated.


== How do I remove a cvs lock? ==
== When should I close the mozilla tree? ==
Ask someone with access to the repository (#bmo, #builds) to remove the lock:
 
The tree should be closed due to:
* system outages that prevent the tinderbox machines from running the necessary tests (compilation, function, performance, memory) on changes that are checked in
* bustage (compilation errors, test failures, or significant performance/memory test regressions) that prevents tinderbox machines from determining if new changes cause further regressions
* bugs that are bad enough to prevent the builds from being used as dogfood
 
Note that a closed tree is different from a restricted tree, where checkins require additional approval or additional criteria due to an impending release.


== cvs is bailing out with "signal 11 errors", what do I do? ==
<b>If you close the tree, please record the time and the reasons why on the [[Tree Closures]] page.</b>
If cvs is crashing with an error like this:


Terminated with fatal signal 11
== When should I reopen the tree after closing it? ==
make[1]: *** [real_checkout] Error 1
make[1]: Leaving directory `/builds/mozilla/Linux_2.4.17-rc1_Clobber'
make: *** [checkout] Error 2


This may be due to a case conflict, e.g. Makefile.in and makefile.in are both checked in, and makefile.in is hiding in the Attic directory. Figure out which file is the right one, and (safely) delete the presumed bogus file from the repository.
When the tree has been closed due to build bustage, performance regressions, or test regressions, it should be reopened once:
* the sheriff has confidence that those regressions are diagnosed and being fixed (preferably fixed already), and
* tinderbox is clear enough (or expected to be in the cycle that current checkins would go into) that any new regressions that should be caught will be.
 
This does not mean that all boxes need to cycle green again before reopening. However, if there were a large number of checkins since things started going bad, it is often good to wait for test boxes to cycle green again to make sure there aren't regressions caused by what has already landed.
 
If there has been a lot of tree closure recently, continuing to hold the tree closed increases the chances that there will be a mess when it reopens and everybody lands at once.  Tree closures should therefore be kept to the minimum necessary, especially when there have been many recent closures or there is an upcoming deadline.
 
Please make sure to update the [[Tree Closures]] page with the time of the opening, as well as any notes that would be useful for a postmortem about that particular closure.


== How do I open/close the mozilla tree? ==
== How do I open/close the mozilla tree? ==


* Update tinderbox message of day that the tree is closed.
* If the tree is being closed for anything other than red or short-lived orange, file a bug about the problem for which it is being closed:
* Go to [http://bonsai.mozilla.org/admin.cgi?&treeid=SeaMonkey Bonsai Administration] ['SeaMonkey' Tree] The top section is used to close the tree.
** If it's a performance or unit test regression, the bug should say which tinderboxes, when, and give an URL to the list checkins that may have caused the regression.
* If opening the tree, uncheck "Clear the list of checkins". If you don't do this, you will clear the hook for the day.
** If it's a functional regression, the bug should have steps to reproduce, the dates of the nightly builds immediately surrounding the regression (or narrower window if known), and an URL to the list of checkins that could have caused the regression.
* Type in the mozilla bonsai password.
* See https://wiki.mozilla.org/ReleaseEngineering/How_To/Close_or_Open_the_Tree
* Click on Close the tree button. The button will rename to Open the tree if the tree is currently closed.
* Update the [http://wiki.mozilla.org/Tree_Closures tree closure log]


== What do I do about regressions? ==
== What do I do about regressions? ==


See the official regression policy document: [http://www.mozilla.org/hacking/regression-policy.html Regression Policy]
See the official regression policy document: [http://www.mozilla.org/hacking/regression-policy.html Regression Policy]


== Who are the sheriffs? ==
== Who are the sheriffs? ==
* stuart
See https://wiki.mozilla.org/Sheriffing
* biesi
 
* Pike
== How to monitor the tree status? ==
* bz
 
* mrbkap
Use [https://treeherder.mozilla.org/ Treeherder].
* vlad
 
* darin
== Is there an easy way to monitor all performance graphs? ==
* bryner
Yes! Thanks [http://blog.johnath.com/index.php/2007/12/13/what-happens-when-your-job-is-also-a-hobby/ to Johnathan Nightingale], we now have a [http://graphs.mozilla.org/dashboard/ performance dashboard].
* roc
 
* ben
See also [[Performance:Monitoring|the performance monitoring wiki]].
* sicking
 
* jst
== How do I cancel/restart a job? ==
* rob_strong
 
* tor
You can use [https://build.mozilla.org/buildapi/self-serve self-serve] as a means of cancelling/restarting a build/test job.  You can also restart/cancel jobs from Treeherder by clicking on the job in question, and pressing either the retrigger or cancel buttons in the job details panel.
* dbaron
 
* brettw
== How do I back out changes from Mercurial? ==
* bsmedberg
See [http://developer.mozilla.org/en/docs/Mercurial_FAQ#Backing_out_changes Mercurial FAQ: Backing out changes].
* coop
 
* dveditz
== How do I back out changes from Gaia? ==
* preed
Gaia changes may need to be backed out if a Gaia Pushbot change caused tests to go orange.  When that happens, you should follow these steps to back out the relevant commit(s):
* myk
 
* johnath
* Examine the changes to gaia.json, which may refer to one or more github commits.  For example, https://hg.mozilla.org/projects/birch/rev/377785a4134c shows two gaia commits: https://hg.mozilla.org/integration/gaia-central/rev/c61d272d29ae and https://hg.mozilla.org/integration/gaia-central/rev/8515ff8e847a.
* Find the github commit which matches the first hg commit.  In this case, https://hg.mozilla.org/projects/birch/rev/377785a4134c maps to https://github.com/mozilla-b2g/gaia/commit/f657ccca8e25486f7ca44e5472d9f20ff4a7b4f4.
* If there is only one gaia commit in gaia.json, it can simply be reverted and then pushed:
 
  git revert f657ccca8e25486f7ca44e5472d9f20ff4a7b4f4
  git push
 
* If there are multiple commits in gaia.json, then you should determine which commits were done against the gaia repo.  You can do this with:
 
  git log f657ccca8e25486f7ca44e5472d9f20ff4a7b4f4 --first-parent


== Who is the sheriff today? ==
For each commit which is part of this git log and is also part of the gaia.json change you are reverting, do a git revert:
See the [[Sheriff_Schedule]] page


== Handy Sheriff tinderbox sidebar ==
  git revert -m 1 f657ccca8e25486f7ca44e5472d9f20ff4a7b4f4
  git revert -m 1 <next commit>
  git push


A tinderbox summary sidebar can be handy for keeping an eye on the tree
There is no need to revert gaia.json directly, as changes to gaia will automatically update this file.
while you're looking at other pages in the browser.


Create a bookmark from the data: uri below and then edit the bookmark to open as a sidebar.
== How do I clobber a build machine or entire branch? ==
The link currently updates every three minutes which is more useful for sheriffing than the
See [[Clobbering_the_Tree|Clobbering the Tree]]
tinderbox default 15, you could shorten it to two or one if you really wanted to be on top
of any bustage.


data:text/html,<meta%20http-equiv="refresh"%20content="180"><frameset%20rows=*,*,*><frame%20src=%22http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox&panel=1%22%20frameborder=0><frame%20src=%22http://tinderbox.mozilla.org/showbuilds.cgi?tree=Mozilla1.8&panel=1%22%20frameborder=0><frame%20src=%22http://tinderbox.mozilla.org/showbuilds.cgi?tree=Mozilla1.8.0&panel=1%22%20frameborder=0></frameset>
== What about mozilla-inbound? ==
mozilla-inbound has its own set of sheriffs for now, read about [[Inbound Sheriff Duty]]. Basically, that tree is always open for landing, and its sheriffs deal with bustages and regressions by backing out the offending patches.

Latest revision as of 17:41, 21 December 2014

What's a sheriff, anyways?

Every day a person from the mozilla community is selected to watch over the build tree. Make sure red gets traction, call people on the phone, etc. Send mail to the sheriffs alias to reach the set of eligible sheriffs.

How should I get ahold of people?

Try irc.mozilla.org, #developers and #build.

You may also want to contact the RelEng Sheriff

How do I change the mozilla tinderbox message of the day?

What kind of comments might the sheriff add to Tinderbox?

The sheriff has broad discretion to add tinderbox comments related to the Mozilla builds, tree opening, blockers etc.

Developers wishing changes to the Mozilla tinderbox messages should communicate with the sheriff so that the changes can be coordinated.

When should I close the mozilla tree?

The tree should be closed due to:

  • system outages that prevent the tinderbox machines from running the necessary tests (compilation, function, performance, memory) on changes that are checked in
  • bustage (compilation errors, test failures, or significant performance/memory test regressions) that prevents tinderbox machines from determining if new changes cause further regressions
  • bugs that are bad enough to prevent the builds from being used as dogfood

Note that a closed tree is different from a restricted tree, where checkins require additional approval or additional criteria due to an impending release.

If you close the tree, please record the time and the reasons why on the Tree Closures page.

When should I reopen the tree after closing it?

When the tree has been closed due to build bustage, performance regressions, or test regressions, it should be reopened once:

  • the sheriff has confidence that those regressions are diagnosed and being fixed (preferably fixed already), and
  • tinderbox is clear enough (or expected to be in the cycle that current checkins would go into) that any new regressions that should be caught will be.

This does not mean that all boxes need to cycle green again before reopening. However, if there were a large number of checkins since things started going bad, it is often good to wait for test boxes to cycle green again to make sure there aren't regressions caused by what has already landed.

If there has been a lot of tree closure recently, continuing to hold the tree closed increases the chances that there will be a mess when it reopens and everybody lands at once. Tree closures should therefore be kept to the minimum necessary, especially when there have been many recent closures or there is an upcoming deadline.

Please make sure to update the Tree Closures page with the time of the opening, as well as any notes that would be useful for a postmortem about that particular closure.

How do I open/close the mozilla tree?

  • If the tree is being closed for anything other than red or short-lived orange, file a bug about the problem for which it is being closed:
    • If it's a performance or unit test regression, the bug should say which tinderboxes, when, and give an URL to the list checkins that may have caused the regression.
    • If it's a functional regression, the bug should have steps to reproduce, the dates of the nightly builds immediately surrounding the regression (or narrower window if known), and an URL to the list of checkins that could have caused the regression.
  • See https://wiki.mozilla.org/ReleaseEngineering/How_To/Close_or_Open_the_Tree
  • Update the tree closure log

What do I do about regressions?

See the official regression policy document: Regression Policy


Who are the sheriffs?

See https://wiki.mozilla.org/Sheriffing

How to monitor the tree status?

Use Treeherder.

Is there an easy way to monitor all performance graphs?

Yes! Thanks to Johnathan Nightingale, we now have a performance dashboard.

See also the performance monitoring wiki.

How do I cancel/restart a job?

You can use self-serve as a means of cancelling/restarting a build/test job. You can also restart/cancel jobs from Treeherder by clicking on the job in question, and pressing either the retrigger or cancel buttons in the job details panel.

How do I back out changes from Mercurial?

See Mercurial FAQ: Backing out changes.

How do I back out changes from Gaia?

Gaia changes may need to be backed out if a Gaia Pushbot change caused tests to go orange. When that happens, you should follow these steps to back out the relevant commit(s):

 git revert f657ccca8e25486f7ca44e5472d9f20ff4a7b4f4
 git push
  • If there are multiple commits in gaia.json, then you should determine which commits were done against the gaia repo. You can do this with:
 git log f657ccca8e25486f7ca44e5472d9f20ff4a7b4f4 --first-parent

For each commit which is part of this git log and is also part of the gaia.json change you are reverting, do a git revert:

 git revert -m 1 f657ccca8e25486f7ca44e5472d9f20ff4a7b4f4
 git revert -m 1 <next commit>
 git push

There is no need to revert gaia.json directly, as changes to gaia will automatically update this file.

How do I clobber a build machine or entire branch?

See Clobbering the Tree

What about mozilla-inbound?

mozilla-inbound has its own set of sheriffs for now, read about Inbound Sheriff Duty. Basically, that tree is always open for landing, and its sheriffs deal with bustages and regressions by backing out the offending patches.