Logo image
Sahara: Guiding the Debugging of Failed Software Upgrades
Technical documentation   Open access

Sahara: Guiding the Debugging of Failed Software Upgrades

Rekha Bachwani, Ricardo Bianchini, Olivier Crameri, Dejan Kostić and Willy Zwaenepoel
Rutgers University
2010
DOI:
https://doi.org/10.7282/T3HH6PMJ

Abstract

Today, debugging failed software upgrades is a long and tedious activity, as developers may have to consider large sections of code to locate the bug. We argue that failed upgrade debugging can be simplified by exploiting the characteristics of upgrade problems to prioritize the set of routines to consider. In particular, previous work has shown that differences between the computing environment in the developer’s and users’ sites cause most upgrade problems. Based on this observation, we design and implement Sahara, a system that identifies the aspects of the environment that are most likely the culprits of the misbehavior, finds the subset of routines that relate directly or indirectly to those aspects, and selects an even smaller subset of routines to debug first. To achieve its goals, Sahara leverages feedback from a large number of user sites, machine learning, and static and dynamic source analyses. We evaluate Sahara for three real upgrade problems with the OpenSSH suite, one synthetic problem with the SQLite database, and one synthetic problem with the uServer Web server. Our results show that the system produces accurate recommendations comprising only a small number of routines.
pdf
tr5b510a6c88b1f262.06 kBDownloadView
Version of Record (VoR) Technical Documentation Open Access
url
Report an accessibility issueView
Please complete a content remediation request to report an accessibility issue with a library electronic resource, website, or service.

Metrics

492 File downloads
61 Record Views

Details

Logo image