Bug trackers and kernel development
[Posted July 15, 2003 by corbet]
The
Kernel Bug Tracker ("bugme") is a
BugZilla system run by the Open Source Development Lab. It currently holds
information on over 300 reported bugs in the 2.5 kernel. The Tracker is
seen by many as a useful tool that brings some organization and discipline
to the task of stabilizing the kernel. So it came as a surprise to many
when David Miller, maintainer of the networking subsystem,
requested that networking bugs not be entered
into the Tracker. It is, he says, the wrong way of solving the problem.
The complaint with bug tracking systems is that they try to centralize what
is otherwise an inherently distributed process. Bugs accumulate in the
database, and a single person gets the job of managing all the bugs for a
particular subsystem. If that person does not devote a significant amount
of time to the task, the tracking system quickly clogs up with outdated
reports, duplicated entries, and generally useless stuff. The time that
goes into maintaining the bug tracker is, of course, time that is not
available to actually fix the bugs.
The proper way of dealing with bugs, according to David, is to simply
report them to the relevant mailing list. The report will be seen by the
developers who can fix the bug, others who have been affected by the bug can
contribute additional information, and fixes can be publicly discussed.
And people who, for whatever reason, do not want to deal with a particular
bug report can simply hit "delete" and the message goes away.
Of course, the "goes away" part is not always popular with those who report
bugs; they would rather see the report hang around and annoy people until
one of them deals with the problem. But anybody who has sent a few bug
reports to a public list knows that those reports can simply vanish without
a trace - a rather unsatisfying result. Why bother to report bugs if the
reports can simply be ignored?
According to David (and others), the lossy nature of mailing list bug
reporting is actually a feature. Bug reporting, it is said, is a process
similar to patch submission. Users who do not get satisfaction from a bug
report should resubmit it. If the bug is not important enough for the user
to "maintain" the report, it's not worth a whole lot of effort to fix.
The "submit and retry" approach does have some advantages. Since it puts
more of the responsibility for bug reports on the users submitting those
reports, it scales more reliably as the number of users increases.
Unimportant or "operator error" bugs vanish automatically without anybody
having to shovel them out of a bug tracking system. Bugs which are fixed
by (seemingly) unrelated patches also fade away automatically. The whole
thing works in a scalable way without the need for central managers.
This approach is foreign and scary, however, to those who feel the need to
track every bug and keep a firm hand on the development process. It
provides FUD fodder for those who would portray free software development
as immature and untrustworthy. It's also frustrating to those who want to retain bug
report information for statistical or data mining purposes. It is,
however, typical of how the kernel development process works in general.
And that process, for all its faults, has produced excellent results over
years as the kernel (and its development team) has grown.
(
Log in to post comments)