Other similar tools
Note that other components in Fedora have similar functionality.
A daemon runs and periodically checks the dmesg and /var/log/messages for kernel oops messages. If it finds one of these types of messages, it gathers all the necessary information and sends them to kerneloops.org. It's almost impossible to remove all unnecessary information (like memory addresses, stack info, which is user dependant), so checking for duplicity is done by human eyes.
Anacoda itself checks for exceptions in its program flow. Also, it has special methods which take a backtrace from the exception and, from this backtrace, removes all unneeded information. Then, a hash is created from the "clean" backtrace. This hash is used for duplicity-checking. If this problem hasn't already been reported, then Anaconda will create a new bug and send it to our Bugzilla via XML-RPC using xmlrpclib.
A tool for bugreports in Gnome. When a gnome application crashed, it is noticed somewhere inside Gnome stuff and bug-buddy is executed. It collects some information (like distribution, kernel version, gnome version, backtrace, memorymap, ...) and all these are send to gnome bugzilla. It also runs gdb with particular options like we want to. But AFAWK it doesn't create any hash, so human eye has to decide whether it's a duplicate or not.
Apport is a system which
- intercepts crashes right when they happen the first time,
- gathers potentially useful information about the crash and the OS environment,
- can be automatically invoked for unhandled exceptions in other programming languages (e. g. in Ubuntu this is done for Python),
- can be automatically invoked for other problems that can be automatically detected (e. g. Ubuntu automatically detects and reports package installation/upgrade failures from update-manager),
- presents a UI that informs the user about the crash and instructs them on how to proceed,
- and is able to file non-crash bug reports about software, so that developers still get information about package versions, OS version etc.
So it's almost what we want, but it needs some improvements/changes to work with our infrastructure and to integrate with tools used in Fedora/RHEL (e.g. *Kit tools)