Distributed Statistical Debugging 103
Luis Villa writes "The Cooperative Bug Isolation Project at UC Berkeley and Stanford is working on statistical debugging techniques to report, find, and fix the bugs that drive the most users crazy every day. A handful of outside bug volunteers have been running the project's special feedback builds for a few weeks, and that has generated some really interesting data. But for strong results they need more runs. /. has been known to generate those kinds of big numbers ;) Their site has feedback builds of several open source applications, and the entire project is open sourced. Read more about it, then install some applications, and help them make our free software better for everyone. I'm really looking forward to the end results."
Re:TO America: (Score:2, Insightful)
Why the hell not!? Freedom of speech is a right. Not a luxury good to be traded.
Russians won WWII (Score:1, Offtopic)
20 mln is an "official" figure. (Score:1, Offtopic)
Nobody turned over Jews, SS troops were good at finding them themselves. Nobody protected
I got a revelation for you (Score:1)
Neither (Score:1)
Second front (Score:2)
Never mind, we asked for Stalin's help to fight Japan. Which he did. After the atomic bombs were dropped.
Re:TO America: (Score:1)
So, you agree that the US is undemocratic then, and that the constitution is not fairly representing the majority of American's who abhor free speech?
(For the slow: If only 2% of the world doesn't abhor free speech, even if
RTFA (Score:3, Insightful)
the "stanford bug checker" is a static source analysis program. this is something else entirely, and arguably more useful.
Re:RTFA (Score:2)
Re:RTFA (Score:2)
I think they both have their use. This system takes samples of the state of a running program and does a statistical to see wich state is likely to be the cause of a crash. Not really something that can't be done by a programmer using a debugger, but automatic and given sufficient input i might point you to exactly what condition causes a crash. The stanford bug checker try to prevent
It has to be said... (Score:1)
Re:It has to be said... (Score:1)
So writes the code that reads the hard disk?? And why doesn't it fail all the time -- MS would not answer.
Re:It has to be said... (Score:1)
The results are encouraging: Office XP programs with Office XP Service Pack 2 basically never crash, at least in our organization of more than 100 desktop and mobile users.
I certainly can't say the same for OpenOffice 1.0... it seemed to crash every time I moved the mouse, so I eventually went back to Office XP on Windows.
I find it disingenous that /. fails to mention Microsoft's wide
Bugs.... (Score:2)
Re:Bugs.... (Score:2, Informative)
cybermace5 asked:
It's a numbers game. We're looking for statistical trends in large numbers of runs. That means we will learn the most, the most quickly, about the bugs that are happening most often to the most users. Bug triage falls out as a natural consequence of the sparse sampling and statistical modeling approach.
That said, you suggestion about measuring head-into-keyboard smacks isn't half bad. There are some gr
Re:Bugs.... (Score:1)
This project does nothing at all to deal with the bugs which are most annoying and difficult to report.
Perhaps it should be called it the Cooperative Crash Isolation project.
Re:Bugs.... (Score:2, Informative)
But in the current public deployment you are quite right that we only pick up on crash bugs. Consider that the more general project name gives us something to aspire to.
Re:Bugs.... (Score:1)
The highest profile example is Mozilla's terrible "voting" system, where I must already know the bug's number before I can be annoyed by it.
The most promising example that I've seen so far is bugs.kde.org, wherein a user attempting to report a bug is presented with a list of likely preexisting matches. If users were encouraged to add a noiseless "me too" to a bug database of that sort, it mi
Re:Bugs.... (Score:2)
Naturally, as you're merely CS doctoral student at Cal and I'm some ignoramus raving at you on Slashdot, my opinion ne
Re:Bugs.... (Score:2, Informative)
In our current deployment, we only learn about problems that crash the application. These are important bugs, but they are certainly not the only bugs.
We are considering ways to let users manually report non-crash misbehavior. I know that this is something that The GIMP's developers are very interested in, and we are already doing controlled experiments along similar lines. The underlying statistical debugging technique
Re:Bugs.... (Score:1)
I have been taking part in this for a while, (gnumeric) however frequently have it switched off, simply out of bandwidth concerns (I pay through the nose if over a rediculously low limit.) Mia Culpa I've not read all the documentation at your site (only so many hours in a day, etc.) Does this only send back reports when gnumeric crashes or is it sending back reports on a constant basis? How much bandwidth does it use? Can I just leave it on knowing it is trivial usage?
Cheers,
H.
Re:Bugs.... (Score:1)
All good questions, Harry8.
It sends back a report when the application exits. Crashes include some extra crash information, but successful exits upload a report too. (That way we can look for the differences between good runs and bad.) See the web site [berkeley.edu] for more details on exactly what's in those reports.
There is no continuous reporting while the program runs: it's just one blob sent when the pro
Re:Bugs.... (Score:1)
That level of bandwidth use is fine with me & well worth it, I'll just switch it on for all users of that machine & forget about it. I guess I was only concerned if it was constantly sending back information - which I thought might hurt the hip-pocket after a few good 6-7 hour sessions of usage. Turns out there is no cause for concern - which is all good.
I'll be interested to see what results it all brings.
All the best.
Didn't Microsoft patent something like this ? (Score:1)
I've got your debugging right here (Score:2)
Can you do something about these ladybugs that are driving Midwesterners nuts [google.com], then?
props (Score:1)
Re:props (Score:2)
Re:props (Score:2)
They had this idea first.
MS has a database of all the crashes reported by its bug reporting tool(in XP & WS03), these crashes are analyzed, sorted and categorized and help them fix the bugs.
Its not a bug (Score:1)
Sorry...had to be said
I have a bad bug on my owrk PC (Score:1)
What Really Interesting Data? (Score:1)
Fix bugs...? (Score:2, Funny)
A debugger that FIX BUGS?
What's next? A compiler that brews beer?
distributed programming... (Score:1)
Re:distributed programming... (Score:1)
Other architectures? (Score:3, Interesting)
From my reading of this, it sounds like the data is going to be architecture specific (i.e. x86, PPC). So that means that those hundreds of thousands of samples that are needed, would be needed for every architecture.
Hmph, mean they probably won't figure out why some programs are seemingly less stable on PPC :( But, I guess many bugs effect every architecture, so I can be happy about that ;)
Re:Other architectures? (Score:5, Insightful)
Consider: projects such as openssh and Apache do not issue separate vulnerability warnings for different platforms. If a memory-corruption bug exists, it is probably exploitable on most platforms given the right conditions.
Still, it's very likely that some particular bug cause crashes often on PPC, but is less likely to be tickled on x86. Then it might not get fixed, because it's less likely to be reported. But if a PPC user does report it, the x86 users benefit from the fix too, even if for them it was a fairly obscure and not-often-noticed bug.
Re:Other architectures? (Score:2)
Re:Other architectures? (Score:2)
Yes, but if you fix a crash-causing bug (such as a buffer overrun) on one architecture, it's likely that the same bug was present on others. Or rather, would also cause a crash on other platforms - since a bug is a property of the source code, the meaning of the program, and the fact that a program happens to work on Tuesday doesn't mean the bug is not there.
Yes, but I was thinking more like endianness bugs and casting pointers to integers on 64-bit machines (yeah, there are still people who do this).
Re:Other architectures? (Score:1)
I guess this illustrates the difference between a bug and a defect. Assuming sizeof(int) == sizeof(void *) is a bug in code, but it may not be a defect in the final executable if you compile for a platform where they do happen to be the same size.
Re:Other architectures? (Score:1)
The instrumentation is injected early during compilation, at roughly the source code level. We're looking at things like variables, function returns, branches, etc.: source-level constructs. Thus, the data is not architecture specific.
Of course, if the bug is architecture specific, then identifying the vulnerable architecture is part of what we'd want the system to produce as analysis results.
By design the system learns the most about the most frequent failures. So yes, that probably means that we wi
Re:Other architectures? (Score:2)
Number 1 on the list (Score:3, Funny)
Patent violation (Score:2)
Microsoft's Distributed Statistical Debugging (Score:2, Interesting)
In my calculations Microsoft must have gotten at least 30,000 reports of this bug and it is still not fixed yet...
Re:Microsoft's Distributed Statistical Debugging (Score:1)
Re:Microsoft's Distributed Statistical Debugging (Score:1)
Re:Microsoft's Distributed Statistical Debugging (Score:1)
Who's crash (Score:2)
Re:Microsoft's Distributed Statistical Debugging (Score:2, Insightful)
Yes, but what makes you think the feature doesn't work?
Re:Microsoft's Distributed Statistical Debugging (Score:3, Insightful)
Now that would be cool! (and very much like an automated bugzilla interface compiled w/ the code
Re:Microsoft's Distributed Statistical Debugging (Score:2)
> or a bug ID in the DB so that you could look back later
> and see how many other entries have been logged for the
> same error and if a patch is in the making
I'm repeating myself, but:
http://www.bugtoaster.com/
TalkBack's Full Circle (as used in Mozilla) in theory does the same, just not publically.
I've also developed a similar thing for Python, it's on sourceforge, but not released yet.
Re:Microsoft's Distributed Statistical Debugging (Score:2)
Re:Microsoft's Distributed Statistical Debugging (Score:1, Informative)
Click all you want. Its pointless once they got enough crash info.
Now they should open the watson buckets for developers on MSDN so we can pull the info from th
Re:Microsoft's Distributed Statistical Debugging (Score:1)
It's not pointless. They don't store every crash dump, but the total number of crashes is recorded. Higher numbers mean higher chances of a fix. Of course, that's assuming that the app didn't wipe out its stack so the fault goes into some generic "we have no idea what's going on" bucket, and that all crashes are actually identical or similar enough, and that the problem is actually in Windows and not the app etc.
As for making the crash info
Re:Microsoft's Distributed Statistical Debugging (Score:2)
They need to do a version of MySQL (Score:2)
RPM only? (Score:2)
Re:RPM only? (Score:1)
We would like to support more distros; it's just a matter of prioritizing our limited resources [berkeley.edu]. If there is a specific alternate distro that you want to see, please let us know [berkeley.edu]. I can't make any promises, but we have every motivation to be responsive to the interests of potential users.
really excelent stuff (Score:1)
No Ebuild? (Score:2)
I guess they don't want the thousands of gentoo users to participate... Shame - they're the sort to be likely to contribute something to said bug reports since they are more likely to know something about programming...
Re:No Ebuild? (Score:1)
Hey now, don't take it personally. That's not what it's about. It's just a matter of prioritizing our limited resources. I would love to add Gentoo to our list, and in fact foser [gentoo.org] has expressed an interest in teaming up. We just need to find the time to get all the pieces put together.
Re:No Ebuild? (Score:2)
Personally, I like the gentoo portage system. I'd really prefer not to mix rpms and ebuilds on my system - my guess is that it will eventually come back to haunt me. I'd probably sooner just download a source tarball and stick it in usr/local where I can get rid of it later if I put in the protage-supported version.
That being said - I have no religious devotion to portage. If somebody else wants rpms or to use apt-get, all the more power to them...
Nifty, but can't follow C++ yet (no Open Office) (Score:2)
That's too bad, because the open source application most needing high reliability is Open Office. Don't get me wrong - Open Office is quite useable, and I experience fewer reliability problems with it than with Microsoft Office. However, making Open Office extremely reliable (far beyond most software) would help far more people than getting the GIMP mor
1 word (Score:1)
does netscape quality feedback agent actually work (Score:1)
FullCircle builds, the Netscape QFA, and You... (Score:1)