[ubuntu-x] Doc updates - bug research
Bryce Harrington
bryce at bryceharrington.org
Thu Oct 18 18:57:20 BST 2007
Hi all,
With Gutsy in the can, I've taken some time to try documenting some of
the debugging procedures. I've noticed there are several distinct
phases in the bug work: a. reporting, b. triaging, c. research,
d. analysis, e. testing, and f. packaging. The following doc focuses on
step c. I'd love feedback/wordsmithing/etc. on this.
Bryce
V. Bug Research
========================================================================
For some trivial bugs, a fix is obvious once the basic information is
gathered, but for the vast majority some additional investigation is
needed.
Much of this sleuthing merely requires skill with google and basic
understanding of Xorg jargon, and since the vast majority of Ubuntu's X
bugs are solved through this basic gumshoe work, this is an extremely
valuable way for non-programmers with a technical bent to make huge
improvements to Ubuntu.
You'll probably come up with your own process for researching bugs, and
in truth different kinds of bugs will benefit from different research
approaches, however in general you'd do something like this:
1. Review the log files for any error messages. While many bugs
won't have error messages, for those that do, you can probably
skip steps 2 and 3.
It may be worthwhile at this point to request additional files or
command output from the reporters, such as gdb backtraces, strace
output, etc. Use the debugging X resources at wiki.ubuntu.com,
debian.org, and freedesktop.org for ideas.
2. Review reports from others who experience the same issue. Often
hearing additional perspectives on a problem can give much better
insight into the issue.
If there are dupes associated with the bug report, read each of
those.
Search for other bug reports with similar problem descriptions, or
that contain similar keywords, error messages, etc.
If multiple people have commented on a bug or its dupes, compare
their configs to see if there are obvious commonalities (e.g., is
everyone using the same driver? Same chipset family?) If there
seems to be a commonality, search debian and freedesktop.org for
other bug reports regarding that hardware.
3. If you have hardware and software similar to the reporter's, see
if you can reproduce it yourself. Being able to reproduce a bug
locally often can save you a lot of time trying to figure things
out, and allows you to directly test workarounds and fixes.
4. Search for other existing reports of the issue. If you've had
luck with steps 1-3, that may give you good search terms,
otherwise you'll need to rely on intuition. Places to search
include google, bugs.debian.org, bugs.freedesktop.org,
ubuntuforums.org, and launchpad. Sometimes it helps to include
"ubuntu" in the search phrase.
Be aware that many suggested solutions available on the net are
incorrect, incomplete, or inappropriate for Ubuntu, so use your
judgement, and ask the reporter to try out ones that seem most
likely.
If you find a match, attach it to the bug report via the
"Also affects project..." link.
This step 4 is the most important Researcher duty.
5. Look and see if there is a newer version of the package available
upstream than what the reporter has installed. If so, review the
changelog (if available) to see if there are changes that sound
relevant to this issue.
If so, then see if someone has packaged the new version yet. If
not, find a Ubuntu X packager and ask if they can produce a test
package of the new release; make sure to let them know you suspect
it may address this bug.
6. If in your searching you run across patches that look relevant,
upload them to the bug report for people to test. Be sure to
check the "patch" checkbox, as this allows packagers to query for
these later.
It may also be worthwhile to make mention of the patch to an X
developer or packager at #ubuntu-x on freenode, or via the
ubuntu-x mailing list. They can produce a .deb including this
patch for testing, to confirm or rule out the fix.
7. Sometimes it is useful to have those that can replicate the issue
try older versions of packages or of Ubuntu. For example, it may
be worthwhile to have them test for the bug on prior Ubuntu Live
CDs (but be aware that older versions may use different drivers,
so be sure to have them collect necessary log and config files so
you can compare configuration differences.)
You can also have them try downgrading specific packages, such as
if you suspect the error is a regression in a new version of a
driver or the xserver. For example, to downgrade the xserver:
apt-get install xserver-xorg-core=2:1.3.0.0.dfsg-4ubuntu
If an older version fixes the issue, then possibly you can bisect
things down to find a specific patch causing the issue. See the
Analysis section for how to do this.
8. If you've been lucky and a patch has been found that fixes the
issue, you're done!
Otherwise, deeper analysis will be required. For now, finish up
the research phase by doing the following:
* Summarize your findings. Restate the problem in your own words,
especially if you were able to make some progress narrowing in
on the cause, or have a suspicion about where the bug may lay.
Include any ideas you weren't able to prove, or questions you
were unable to answer.
* If appropriate, report the bug upstream either to Debian or Xorg
(or maybe both). Be sure to include all relevant files, logs,
backtraces, photos, etc. and a link to the Ubuntu bug report in
Launchpad. Summarize the research you did, patches that were
tested, and any other details that may be relevant.
Note in doing bug research that it's important to distinguish between
"workarounds" and "fixes". Workarounds enable the user to get their own
system back to functional order. Fixes solve the issue for everyone,
and prevent it from being an issue in the future. Workarounds are worth
mentioning on the bug, so other users experiencing the issue can solve
it locally, but the bug can only be considered finished once a fix has
been released.
More information about the Ubuntu-x
mailing list