All of lore.kernel.org
 help / color / mirror / Atom feed
* bug database braindump from the kernel summit
@ 2001-04-01 17:54 Larry McVoy
  2001-04-01 19:43 ` Albert D. Cahalan
                   ` (3 more replies)
  0 siblings, 4 replies; 41+ messages in thread
From: Larry McVoy @ 2001-04-01 17:54 UTC (permalink / raw)
  To: linux-kernel

Folks, since bug tracking is the next thing we are attacking here at
BitMover, I have a great deal of interest in the bug tracking discussion
which happened last night at the summit.  We already have a prototyped bug
tracking system which we are integrating into BitKeeper, but as usual,
it isn't good enough for the kernel team who have an interesting set
of requirements.

We want to make sure that the BK bug tracking system _could_ be used for
the kernel effort.  Whether it is or not will be decided after years of
licensing flamewars, etc., etc.  We're not going to go there so please
don't try.

Where I want to go is a discussion of requirements, then we converge on
a strawman proposal, and then all of the people who care enough about
this can go implement an answer and Linus and/or Alan and/or whoever can
choose one.

Let's stay focussed on arriving at a good set of agreed on requirements.

I've done a brain dump below.  I'll track this mail thread and update this
doc as the discussion unfolds.  I'll post updates as it is needed.  If this
discussion takes on a life of its own, I may try and grab all the mail and
archive it so that people can browse; we'll see, it may be that everyone
is so busy that this will be the first and last message on the topic.

--lm

Brain dump on the bug tracking problem from the Kernel Summit discussions

		[SCCS/s.BUGS vers 1.2 2001/04/01 10:46:55]

Outline
	Problems
	Problem details
	Past experiences
	Requirements

Problems
    - getting quality bug reports
    - not losing any bugs
    - sorting low signal vs high signal into a smaller high signal pile
    - simplified, preferably NNTP, access to the bug database (Linus
      would use this; he's unlikely to use anything else)

Problem details
    Bug report quality
    	There was lots of discussion on this.  The main agreement was that we
	wanted the bug reporting system to dig out as much info as possible
	and prefill that.  There was a lot of discussion about possible tools
	that would dig out the /proc/pci info; there was discussion about
	Andre's tools which can tell you if you can write your disk; someone
	else had something similar.

	But the main thing was to extract all the info we could
	automatically.	One thing was the machine config (hardware and
	at least kernel version).  The other thing was extract any oops
	messages and get a stack traceback.

	The other main thing was to define some sort of structure to the
	bug report and try and get the use to categorize if they could.
	In an ideal world, we would use the maintainers file and the
	stack traceback to cc the bug to the maintainer.  I think we want
	to explore this a bit.	I'm not sure that the maintainer file is
	the way to go, what if we divided it up into much broader chunks
	like "fs", "vm", "network drivers", and had a mail forwarder
	for each area.	That could fan out to the maintainers.

    Not losing bugs
	While there was much discussion about how to get rid of bad,
	incorrect, and/or duplicate bug reports, several people - Alan
	in particular - made the point that having a complete collection
	of all bug reports was important.  You can do data mining across
	all/part of them and look for patterns.  The point was that there
	is some useful signal amongst all the noise so we do not want to
	lose that signal.
    
    Signal/noise
	We had a lot of discussion about how to deal with signal/noise.
	The bugzilla proponents thought we could do this with some additional
	hacking to bugzilla.  I, given the BitKeeper background, thought 
	that we could do this by having two databases, one with all the 
	crud in it and another with just the screened bugs in it.  No matter
	how it is done, there needs to be some way to both keep a full list,
	which will likely be used only for data mining, and another, much
	smaller list of screened bugs.  Jens wants there to be a queue of 
	new bugs and a mechanism where people can come in the morning, pull
	a pile of bugs off of the queue, sort them, sending some to the real
	database.  This idea has a lot of merit, it needs some pondering as
	DaveM would say, to get to the point that we have a workable mechanism
	which works in a distributed fashion.

	The other key point seemed to be that if nobody picked up a bug and
	nobody said that this bug should be picked up, then the bug expires
	out of the pending queue.  It gets stashed in the bug archive for
	mining purposes and it can be resurrected if it later becomes a real
	bug, but the key point seems to be that it _automatically_ disappears
	out of the pending queue.  I personally am very supportive of this
	model.  We need some way to just let junk stay junk.  If junk has to
	be pruned out of the system by humans, the system sucks.  The system,
	not humans, needs to autoprune.
    
    Simplified access: browsing and updating
	Linus made the point that mailing lists suck.  He isn't on any and
	refuses to join any.  He reads lists with a news reader.  I think
	people should sit up and listen to that - it's a key point.  If your
	mailing list isn't gatewayed to a newsgroup, he isn't reading it and
	a lot of other people aren't either.

	There was a fair bit of discussion about how to get the bug database
	connected to news.  There doesn't seem to be any reason that the
	bug system couldn't be a news server/gateway.  You should be able to
	browse
	    bitbucket.kernel.bugs - all the unscreened crud
	    screened.kernel.bugs - all bugs which have been screened
	    fs.kernel.bugs - screened bugs in the "fs" category
	    ext2.kernel.bugs - screened bugs in the "ext2" category
	    eepro.kernel.bugs - screened bugs in the "eepro" category
	    etc.

	Furthermore, the bugs should be structured once they are screened,
	i.e., they have a set of fields like (this is a strawman):

	    Synopsis - one line man-page like summary of the bug
	    Severity - how critical is this bug?
	    Priority - how soon does it need to be fixed?
	    Category - subsystem in which the bug occurs
	    Description - details on the bug, oops, stack trace, etc.
	    Hardware - hardware info
	    Software - kernel version, glibc version, etc.
	    Suggested fix - any suggestion on how to fix it
	    Interest list - set of email addresses and/or newsgroups for updates
	
	It ought to work that if someone posts a followup to the bug then if
	the followup changes any of the fields that gets propagated to the
	underlying bug database.  If this is done properly the news reader will
	be the only interface that most people use.

Past experiences
    This is a catch all for sound bytes that we don't want to forget...

    - Sorting bugs by hand is a pain in the ass (Ted burned out on it and
      Alan refuses to say that it is the joy of his life to do it)
    - bug systems tend to "get in the way".  Unless they are really trivial
      to submit, search, update then people get tired of using them and go
      back to the old way
    - one key observation: let bugs "expire" much like news expires.  If
      nobody has been whining enough that it gets into the high signal 
      bug db then it probably isn't real.  We really want a way where no
      activity means let it expire.
    - Alan pointed out that having all of the bugs someplace is useful,
      you can search through the 200 similar bugs and notice that SMP
      is the common feature.  

Requirements
    This section is mostly empty, it's here as a catch all for people's
    bullet items.  

    - it would be very nice to be able to cross reference bugs to bug fixes
      in the source management system, as well as the other way around.

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: bug database braindump from the kernel summit
@ 2001-04-01 19:32 Manfred Spraul
  2001-04-01 20:17 ` Albert D. Cahalan
  2001-04-01 20:59 ` Jeff Garzik
  0 siblings, 2 replies; 41+ messages in thread
From: Manfred Spraul @ 2001-04-01 19:32 UTC (permalink / raw)
  To: lm; +Cc: linux-kernel

> There was a lot of discussion about possible tools
> that would dig out the /proc/pci info

I think the tools should not dig too much information out of the system.
I remember some Microsoft (win98 beta?) bugtracking software that
insisted on sending a several hundert kB long compressed blob with every
bug report.
IMHO it must be possible to file bugreports without the complete hw info
if I know that the bug isn't hw related.

--
    Manfred





^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: bug database braindump from the kernel summit
@ 2001-04-01 22:34 Stephen Satchell
  2001-04-02  8:00 ` Olaf Titz
  0 siblings, 1 reply; 41+ messages in thread
From: Stephen Satchell @ 2001-04-01 22:34 UTC (permalink / raw)
  To: linux-kernel

At 10:54 AM 4/1/01 -0700, Larry McVoy wrote:
>     - one key observation: let bugs "expire" much like news expires.  If
>       nobody has been whining enough that it gets into the high signal
>       bug db then it probably isn't real.  We really want a way where no
>       activity means let it expire.

I have a couple of suggestions that may improve the bug tracking process 
without needing a bug czar or driving everyone crazy.

1)  The idea of letting a bug "expire" is a good one.  One way to do this 
is to incorporate some form of user-base moderation into the bug 
database.  Unlike some of the forum systems, there's no reason why we can't 
have tiers of moderators:  "maintainers" are the clearinghouse people for 
certain portions of the Linux kernel source tree and should have a larger 
voice as to whether a bug is important, redundant, or completely off 
base.  "contributors" are people recognized as having contributed in one 
way or another to the source tree (or, as the bug systems grows to 
encompass documentation, the documentation tree) and could serve as a 
"citizens advisory group" to speed the process of sorting the wheat from 
the chaff.  Also, a "contributor" would be able to "take ownership" of the bug.

2)  One of the big problems is recognizing that a particular bug has 
already been reported, and more importantly getting some sort of link 
between the new bug and the old bug.  When I ran a DVT operation, the 
developers found this linkage to be extremely useful in order to trace the 
source of bugs, especially really obscure ones that cut across a number of 
modules.

3)  In the commercial software world, there is a requirement that a bug be 
verified by someone "in house" -- in other words, a bug isn't a bug until 
someone can reproduce it.  This is a key item in separating the noise from 
the signal.  Again, the group-moderation system would permit quick 
identification of repeatable bugs.

4)  Using an NNTP interface would be interesting.  "Follow-ups" could 
consist of observations, commands, and requests for additional information 
from the bug report that isn't visible from the basic NNTP tree.  If you 
want to see more about a bug, the tree representation could let you pick 
and choose what you want to look at.  For someone who prefers to have 
everything to hand, a command would say "email sections a, b, ... to me 
(with "me" defined in the NNTP headers) and those sections would be mailed 
to the individual.

5)  Most important, the person originally submitting the bug should have an 
easy way of saying "never mind."  Existing search commands in the NNTP 
interface could make this a very easy chore for the infrequent contributor.

EXPIRING:  It's one thing to do an expire a la standard NNTP conventions, 
but it's quite another to do something "smarter".  I see a couple of things 
that would have to enter into a decision whether to expire a bug from the 
pending-status list:

a)  The bug needs to be present for more than a set amount of time without 
overt activity.
b)  A person trying to replicate the bug should be able to extend the 
time-out -- some bugs take longer to replicate than others.  If you don't 
allow for this, the bug could be expired before it can be verified, and the 
verifier has to work harder (assuming they even bother) to extract the bug 
from the data mine and get it to where a code guy can get to it.
c)  A maintainer should be able to sink a bogus bug early, especially if no 
one has owned up to trying to replicate it or fix it.  Contributors can 
heartily declare a bug "bogus", and if enough do so the bug could be sunk 
early.  Also, if enough people say "I can't replicate this bug" that's a 
good sign you have a piece of noise.

 From my own experience in commercial shops, I'd say that we could start 
with an expire time of two weeks, and if necessary adjust it.  Weighting 
for each of the metrics for expiring bugs could be set experimentally.  The 
goal is that a maintainer can squash bugs NOW, and the community could 
actively squash bugs in 24 hours.

IS THE BUG FIXED:  When a bug is declared "fixed" the bug tracking system 
needs to alert everyone who has submitted the bug and replicated it.  This 
notification would then let those people (those who are still interested) 
see if the patch really fixes the bug.  If it does, confirmation of a bug 
fix would be included, and that would help Alan & Co. to determine what 
patches should go in.

Just a few random thoughts on the whole process -- but I suspect others 
have already thought of these things.  I'd be interested in working on 
this, day job willing.

Stephen Satchell
satch@fluent-access.com


^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2001-04-05 12:56 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-04-01 17:54 bug database braindump from the kernel summit Larry McVoy
2001-04-01 19:43 ` Albert D. Cahalan
2001-04-01 20:21   ` Gregory Maxwell
2001-04-01 20:38     ` Albert D. Cahalan
2001-04-01 21:16 ` David Lang
2001-04-01 21:18   ` David Lang
2001-04-02  1:57   ` Miles Lane
2001-04-02  5:07     ` David Lang
2001-04-01 23:14 ` Jeff Garzik
2001-04-02 13:31 ` Rogier Wolff
  -- strict thread matches above, loose matches on Subject: below --
2001-04-01 19:32 Manfred Spraul
2001-04-01 20:17 ` Albert D. Cahalan
2001-04-01 21:07   ` Jeff Garzik
2001-04-01 21:48     ` Manfred Spraul
2001-04-01 22:48       ` Jeff Garzik
2001-04-01 23:01         ` David Lang
2001-04-01 23:21           ` Jeff Garzik
2001-04-01 23:25             ` David Lang
2001-04-01 23:34               ` Jeff Garzik
2001-04-01 23:32                 ` David Lang
2001-04-01 23:44                   ` Jeff Garzik
2001-04-01 23:43                     ` David Lang
2001-04-02  0:26                       ` Ben Ford
2001-04-02 18:57                         ` Kai Henningsen
2001-04-05 12:55                         ` Petr Baudis
2001-04-02  5:26             ` Richard Russon
2001-04-02 21:35               ` Steven Walter
2001-04-02 19:39             ` Oliver Xymoron
2001-04-02 21:40               ` J . A . Magallon
2001-04-02 22:09                 ` Jeff Garzik
2001-04-02 22:24                   ` David Lang
2001-04-02 22:38                   ` J . A . Magallon
2001-04-02 23:04               ` Tom Leete
2001-04-02 23:12                 ` Oliver Xymoron
2001-04-02 23:24                   ` Jeff Garzik
2001-04-02 23:31                     ` Oliver Xymoron
2001-04-03 16:05                   ` Miles Lane
2001-04-02  1:49     ` Miles Lane
2001-04-01 20:59 ` Jeff Garzik
2001-04-01 22:34 Stephen Satchell
2001-04-02  8:00 ` Olaf Titz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.