I have been working recently on a new Platform Engineering initiative called Uptime, the goal of which is to reduce Firefox’s crash rate on both desktop and mobile. As a result I’ve been spending a lot of time looking at crash reports, particular on the Nightly channel. This in turn has increased my appreciation of how important Nightly channel users are.
A crash report from a Nightly user is much more useful than a crash report from a non-Nightly user, for two reasons.
- If a developer lands a change that triggers crashes for Nightly users, they will get fast feedback via crash reports, often within a day or two. This maximizes the likelihood of a fix, because the particular change will be fresh in the developer’s mind. Also, backing out changes is usually easy at this point. In contrast, finding out about a crash weeks or months later is less useful.
- Because a new Nightly build is done every night, if a new crash signature appears, we have a fairly small regression window. This makes it easier to identify which change caused the new crashes.
Also, Nightly builds contain some extra diagnostics and checks that can also be helpful with identifying a range of problems. (See
MOZ_DIAGNOSTIC_ASSERT for one example.)
If we could significantly increase the size of our Nightly user population, that would definitely help reduce crash rates. We would get data about a wider range of crashes. We would also get stronger signals for specific crash-causing defects. This is important because the number of crash reports received for each Nightly build is relatively low, and it’s often the case that a cluster of crash reports that come from two or more different users will receive more attention than a cluster that comes from a single user.
(You might be wondering how we distinguish those two cases. Each crash report doesn’t contain enough information to individually identify the user — unless the user entered their email address into the crash reporting form — but crash reports do contain enough information that you can usually tell if two different crash reports have come from two different users. For example, the installation time alone is usually enough, because it’s measured to the nearest second.)
All this is doubly true on Android, where the number of Nightly users is much smaller than on Windows, Mac and Linux.
Using the Nightly channel is not the best choice for everyone. There are some disadvantages.
- Nightly is less stable than later channels, but not drastically so. The crash rate is typically 1.5–2.5 times higher than Beta or Release, though occasionally it spikes higher for a short period. So a Nightly user should be comfortable with the prospect of less stability.
- Nightly gets updated every 24 hours, which some people would find annoying.
There are also advantages.
- Nightly users get to experience new features and fixes immediately.
- Nightly users get the satisfaction that they are helping produce a better Firefox. The frustration of any crash is offset by the knowledge that the information in the corresponding crash report is disproportionately valuable. Indeed, there’s a non-trivial likelihood that a single crash report from a Nightly user will receive individual attention from an engineer.
If you, or somebody you know, thinks that those advantages outweigh the disadvantages, please consider switching. Thank you.