Google Project Targets Program Crashes

 
 
By Brian Prince  |  Posted 2006-12-29
 
 
 
Program crashes are an unfortunate fact of life for software developers. But to protect against crashes, developers need to know which programs are crashing and how often. Enter Google, which for the past several months has been working on an open-source project called "Airbag" that is aimed at handling all the dirty work when it comes to crash reports. Mark Mentovai, a Google software engineer working on Airbag, spoke with eWEEK Staff Writer Brian Prince about the project.

What was the genesis of the project? Why and when was it started?

We needed a library like this here at Google, and my colleague Brian Ryner and I decided it would be beneficial to other developers and open-source projects. A great example is Mozilla Firefox. Firefox is a large application with a lot of users, so scalability was also a concern. There are some commercial packages that provide crash-reporting systems, but there really isnt anything that a cross-platform open-source project can leverage. We wanted to change that. As we began working, we realized that the bulk of the work had to do with the nitty-gritty technical details, and that we could reach a wider audience by conquering those problems in a general way and allowing developers the freedom to choose how to integrate Airbag into their own products.

Whats the status of the project? What platforms does it work on currently, and will it work on others?

Were actively developing Airbag. Right now, we have a fully functional server-side library that can handle crash reports from any PowerPC or x86-based platform as long as the reports are packaged in the format were using. The library is a "middle layer" that processes the crash dump after it is received. Developers can then store the processed reports as they see fit. On the client side, we have complete implementations for Mac OS X and Windows. We also have a very substantial portion of a Linux implementation. These are the three operating systems we plan to support initially, although it shouldnt be difficult to write an Airbag client for another system if a developer is familiar with the target system and with Airbag. Well happily accept ports of Airbag to other systems.

To read more about Google products, click here.

What are the benefits for businesses?

Right now, most software companies that want crash reporting functionality either write their own, or if theyre on Windows, use Microsofts crash reporting service. Rolling your own is a lot of work, and using an external service might be undesirable for a variety of reasons. Airbag helps a business set up a crash reporting server on Linux and use it for their client products on any of our supported operating systems.

Crashes that occur "in the wild," on users computers, are sometimes difficult for developers to reproduce themselves, due to the varying hardware and software configurations, the complexity of the software, and the often random nature of crashes. Crash reporters like Airbag take a snapshot of what was happening in a program at the precise moment that it crashed, so even when a developer isnt able to reproduce a crash, theres at least a record of what state the program wound up in, and how it got there. This data can help a developer to fix crashes.

In addition, a crash-reporting system built around Airbag can examine crash data to determine which crashes seem to be occurring most frequently in real-world situations. Because Airbag can tell developers which crashes users are experiencing, and can provide clues as to why theyre occurring, it can have a very positive impact on software stability.

When will it be formally released and whats left to be done before that happens?

For the time being, interested developers comfortable with works in progress can access Airbag directly from our Subversion repository. Once our Linux implementation is complete and stable, well be ready for a more formal release.

Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.

Rocket Fuel