Triage

Revision 30 as of 2007-07-06 10:37:05

Clear message

In a hospital, triage happens the instant a patient arrives through the emergency room doors. His vital signs are checked, his status assessed, and he gets sorted in amongst all the other patients waiting for treatment.

Bug triage is a lot like that. Without any risk of death.

Ubuntu receives an incredibly large number of bug reports every day through our BugTrackingSystem. Each one of these needs to be read, assessed, and sorted before being fixed. This is where we could use your assistance with HelpingWithBugs.

Untriaged bugs

[https://launchpad.net/ubuntu/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=Unconfirmed&field.importance%3Alist=Undecided&assignee_option=none&field.assignee=&field.owner=&field.component=1&field.component=2&field.component-empty-marker=1&field.omit_dupes.used=&field.omit_dupes=on&field.has_patch.used=&field.has_no_package.used=&search=Search Untriaged bugs] can be found via this link. Once a bug has been triaged it will no longer show up in this search.

You can use the Advanced search in the BugTrackingSystem to find untriaged bugs for a specific package. Go to the source package's bugs advanced search page and look for:

  • Status: Unconfirmed

  • Importance: Undecided

  • Assigned to: Nobody

New bugs

Every bug report is a conversation with the reporter. The first contact any reporter usually has with Ubuntu is through a bug triager, who tries to put together a complete bug report. It's fairly important that we give a good impression, so please be polite and try to use your best English.

In order to help triage bugs, you have to be able to find them. Fortunately, this is easy. You can find out about new reports in one of two ways:

The first method is far more preferable, as you won't get a mailbox stuffed full of mail each time you read it. I tried the second option for a while and couldn't keep up at all.

When you enter #ubuntu-bugs, you'll soon see the following types of messages fly by:

New bug: #1 in Ubuntu "Microsoft has a majority market share" [Undecided,Unconfirmed] http://launchpad.net/bugs/1

To start, just pick one of the recent ones and open the link in your favourite browser. If no one else has commented yet, then this bug could be yours!

Duplicates

Many of the reports filed against Ubuntu are actually duplicates of known reports. This usually happens after a high profile bug has been introduced into Ubuntu, causing a lot of users to report it. Other times, users will file a report that duplicates an older bug, but has different symptoms.

Bugs are duplicates when they have the same root cause. Determining this is a skill that you'll pick up as you become more familiar with a particular program or package. Bugs are not necessarily duplicates if they have the same effects. If in doubt, ask for another opinion.

When you first look at a new bug, try to find an existing bug in the system that describes the new one. Here's how:

  • Click the "Show all open bugs" link on the right side of the page.
  • Look for bugs with similar descriptions or related topics.
  • If they describe the same root cause, decide which report should be the primary one. This should be the one that's clearest.
  • For the other report, add a comment to the bug thanking the user for their report and indicating it is a duplicate. Then click the "Mark as Duplicate" link and input the number of the primary bug.

Apport crash reports

A considerable number of bugs concern program crashes which are reported semiautomatically with [https://wiki.ubuntu.com/Apport Apport] and get pre-processed automatically by some bots in the Canonical data center. These bots try to generate a fully symbolic stack trace and check for duplicates.

In Feisty and early Gutsy, those bugs were public, so that everyone can see them. This created a privacy problem, though, since core dumps and stack traces could contain potentially sensitive information. Also, crash reports generate a lot of bug email noise. With the automatic duplicate checking, a fair amount of the reported bugs are completely irrelevant for triagers.

In current Gutsy, these problems [https://wiki.ubuntu.com/CrashReporting has been mitigated]: bugs are filed with the "private" flag enabled, i. e. only the reporter and subscribers can see it. Depending on whether the crash affects a main/restricted or universe/multiverse package, the reprocessing bots will subscribe the ubuntu-crashes-main or ubuntu-crashes-universe team, which are essentially ubuntu-core-dev and ubuntu-dev, but without bug email.

Thus crash bugs differ from other bugs in two important aspects: they need to be checked for sensitive data, and there will not be any initial bug mail for them until they become public. Triagers should check the following things:

  • If the crash still has a CoreDump.gz attachment, then it was not possible to automatically get a fully symbolic stack trace and check for duplicates. In this case, the bug will be tagged with [https://bugs.launchpad.net/ubuntu/+bugs?field.tag=apport-failed-retrace apport-failed-retrace]. If the stack trace looks good enough, the CoreDump.gz attachment should be removed with the (edit) link in the attachment box. If the retrace failed completely, just leave the bug alone.

  • If there is no Stacktrace.txt (retraced) attachment, then the most probable reason is that the CoreDump.gz attachment is broken. Please check with Martin Pitt (pitti in IRC, martin.pitt@ubuntu.com) about the reason, he can look into log files.

  • Check if the Stacktrace.txt (retraced) attachment has anything that looks like sensitive data, such as passwords passed as function arguments. If you don't find anything, you should mark the bug as public ("Visibility/security" in the top left pink box).

Except for those privacy issues, crash reports should be handled like normal bugs in terms of duplicate searching/marking, upstream forwarding, etc.

Complete reports

We want to make sure that every triaged bug is completely described before it gets examined by someone who will fix it. When a bug has all the information available, it's much easier to isolate the cause of the problem and write a fix, which means more bugs get fixed faster.

A complete bug report must contain the following things:

  • The steps the user performed to produce the problem.
  • The expected result of these actions.
  • The actual result of these actions.
  • The version of Ubuntu and the version of the package the user is running.

As a triager, you'll learn to ask for additional information when it's relevant. For instance:

  • The version numbers of the affected programs.
  • Any crash dumps produced by these programs.
  • [:Backtrace]s and other debugging output.
  • Any log files that are related to the problem.

Our DebuggingProcedures can tell you what extra information should be included for particular classes of bugs.

Since most reports probably won't be complete, you'll have to start a conversation. Ask the reporter for more information like so:

  • Click on the task name, which is usually the package name.
  • Change the "Status" field to "Needs Info".
  • Change the "Assigned to" field to "Me".
  • Check "E-mail me about changes to this bug report". (Subscribe to the bug)
  • Ask for more information in the "Comment on this change" field.
  • Click "Save changes".

You subscribe to this bug so you will be e-mailed when the reporter responds.

Confirming

When you have a complete report, and there is enough information to debug the program, you can confirm the report. How do you know there is enough information? Here are some example criteria, ANY of which is sufficient:

  • Is there a patch that claims to fix the bug?
  • Are there sufficient log files and crash dumps, as outlined in DebuggingProcedures?

  • Can you reproduce the bug yourself?
  • Does another distribution have a complete and confirmed bug?
  • Does the upstream author have a complete and confirmed bug?

If ANY of these conditions are satisfied, you can Confirm the report. To do this:

  • Change the "Status" field to "Confirmed".
  • Assign the appropriate "Importance" value, according to ["Bugs/Importance"].
  • Change the "Assigned to" field to "Nobody".
  • Click "Save changes".

Status and Importance

If in doubt, the maintainer (or the one working on the bug) should change the Status and Importance. It usually reflects the status of this work or reflects how the bug fits into her/his working time.

Please check ["Bugs/Importance"] and see the "Managing Status" section on ["Bugs/CommonTasks"].

In the event that a bug report includes a patch with it, this does not mean that the bug that the Status should be set to Fix Committed. See the "Managing Status" section of ["Bugs/CommonTasks"] for additional information.

Forwarding upstream

Much of the software in Ubuntu is not actually written by us. We package many pieces of free and open source software, collect them in a distribution, and integrate them. As such, many bugs are actually in programs we've never written.

In order to be good citizens, we want to forward good bug reports to the original (or upstream) authors. This helps the author track down bugs in their software. And it helps Ubuntu when they fix the bug.

A list of bugs that need to be forwarded [https://bugs.launchpad.net/ubuntu/+bugs?field.searchtext=&orderby=-importance&field.status%3Alist=Unconfirmed&field.status%3Alist=Needs+Info&field.status%3Alist=Confirmed&field.status%3Alist=In+Progress&field.status%3Alist=Fix+Committed&assignee_option=any&field.assignee=&field.owner=&field.component-empty-marker=1&field.status_upstream=pending_bugwatch&field.status_upstream-empty-marker=1&field.omit_dupes.used=&field.omit_dupes=on&field.has_patch.used=&field.tag=&field.has_no_package.used=&search=Search upstream].

Forwarding a bug is a bit of work, but it's well worth it. Here's what you do:

  • Find the upstream author.
  • If they have a bug tracking system,
    • Sign up for it, if necessary.
    • Search for this bug report in the upstream system.
    • If it doesn't exist, report a new bug in their system.
    • Link their bug report to ours.
  • If they have a mailing list or e-mail address,
    • Report the bug by sending an e-mail to the appropriate address.

When you report a new bug, please include the following information:

  • Link to the bug inside Malone, in the form: https://launchpad.net/bugs/######

  • Credit the initial reporter.
  • Provide a complete description of the problem.

Linking a bug report is much easier:

  • Click the "+ Upstream..." or "+ Distribution..." link, as appropriate.
  • Choose the correct "Product" or "Distribution".
  • Check the "Link to a bug in another bug tracker:" box.
  • Select the proper "Remote Bug Tracker".
  • Enter the bug identification number in the "Remote Bug" field.
  • Click "Continue".

If the remote bug tracker is not [https://bugs.launchpad.net/bugs/bugtrackers/ already registered] with Malone, you should [https://bugs.launchpad.net/bugs/bugtrackers/+newbugtracker add it]. (Or if you cannot, [https://launchpad.net/malone/+filebug file a bug on malone].)

Marking a Bug as Requiring Forwarding

If you find a bug that needs forwarding, it is best to forward it immediately. However, if you are running short on time, you can still mark the bug as requiring to be forwarded. To do this:

  • Open an upstream task, but not assign a bug watch
  • This will mark the bug as "needs forwarding"
  • You can search for those bugs in the "Advanced Search" by selecting the "Show only bugs that need to be forwarded to an upstream bugtracker" option.

Rejecting

Sometimes, you will have to reject a bug report. This may be because the problem is not reproducible, the program was designed to behave a certain way, or the report is actually a feature or support request.

The best thing to do here is to politely decline the report while thanking the user for submitting it. There are some useful ["Bugs/Responses"] that you can use in these cases.

There is no need to reject bugs that are already marked as duplicates of other bugs. Doing so creates bug mail noise, and makes it more difficult to un-duplicate the bug later if that turns out to be necessary.

Looking through your bugs

There will be a few bug reporters who never get back to you and you will want to Reject those bugs. Or perhaps you want to look at a list of bugs you are working on, to see if anyone has replied.

A good way to get a list of these bugs is to look at your assigned bugs. This can be found in Launchpad at:

  • https://launchpad.net/~<username>/+assignedbugs

where you replace <username> with your own.

You should go through your bugs fairly often, maybe once a week, to make sure you haven't missed anything.


Go back to [:HelpingWithBugs].BRBR CategoryBugSquad