Homework 8, ECE 590 & CS320 Towards more Reliable Software
By following the procedure described below, classify the bugs reported in a set of 21 issues from the following repositories:
- Linux Kernel: https://bugzilla.kernel.org
- MySQL: http://bugs.mysql.com
- Apache: https://issues.apache.org/bugzilla
-
Select 7 issues per project. Provide a justification for the classification. Procedure for classification
- Check that the reported issue is not an operator error, a request for software enhancements;
- Search the report for information on the activation conditions of the bug (e.g., the set of events and/or inputs required to trigger errors), its error propagation (e.g., how the bug affected the program state and how an erroneous state propagated through the running system), and the failure behavior (e.g., the bug effects perceived by the users).
- Classify the bug as an aging-related bug (ARB) if there are indications that the rate with which it is activated and/or the rate with which errors caused by it are propagated into (partial) failures can be an increasing function of the total time the system has been running (e.g., the report refers to leakage and/or gradual corruption of resources, or to the accumulation of numerical errors). Typically, the information in the failure report also allows to determine the ARB subtype (MEM, STO, LOG, NUM, TOT, as defined in the lecture’s slide); e.g., it is reported that memory expected to be freed had not been freed. Sometimes, it may be merely known that the failure rate of a bug tend to increase over time (e.g., because it caused a failure only after a certain function had been called multiple times), but there is not enough information about the exact failure mechanics, like the presence of error accumulation. In such a case, classify it as an ARB of unknown subtype (ARU).
- A bug that is not an ARB can be classified as a non-aging-related Mandelbug (NAM) if there are indications that one of the types of “complexity” of the activation and/or error propagation, encoded in the four subtypes LAG, ENV, TIM, and SEQ (see the lecture’s slides), apply to it. Sometimes, there is not sufficient information about the activation and error propagation conditions of a bug reported to sporadically cause failures that could not be reproduced. These are classified as NAM of unknown subtype (NAU).
- If there was evidence that the bug was neither an ARB nor a NAM, classify it as a Bohrbug (BOH).
- If the report did not contain sufficient details to classify the underlying bug as an ARB, NAM, or BOH, just discard it and select another one.
You should have a total of 21 issues (7 per project), and each issue you choose should have:
- The title/description of the issue and which project/repository it came from 2. The classification
- Justification for the classification
For background information on the topic, see (uploaded on sakai Readings folder): D. Cotroneo, M. Grottke, R. Natella, R. Pietrantuono and K. S. Trivedi, "Fault triggers in open- source software: An experience report," IEEE 24th International Symposium on Software Reliability Engineering (ISSRE 2013)