Characterizing Timeout Builds in Continuous Integration

Authors - Nimmi Rashinika Weeraddana, Mahmoud Alfadel, Shane McIntosh
Venue - IEEE Transactions on Software Engineering, Vol. 50, No. 6, pp. 1450–1463, 2024

Related Tags - TSE 2024 continuous integration resource waste

Abstract - Compute resources that enable Continuous Integration (CI, i.e., the automatic build and test cycle applied to the change sets that development teams produce) are a shared commodity that organizations need to manage. To prevent (erroneous) builds from consuming a large amount of resources, CI service providers often impose a time limit. CI builds that exceed the time limit are automatically terminated. While imposing a time limit helps to prevent abuse of the service, builds that timeout (a) consume the maximum amount of resources that a CI service is willing to provide and (b) leave CI users without an indication of whether the change set will pass or fail the CI process. Therefore, understanding timeout builds and the factors that contribute to them is important for improving the stability and quality of a CI service. In this paper, we investigate the prevalence of timeout builds and the characteristics associated with them. By analyzing a curated dataset of 936 projects that adopt the CircleCI service and report at least one timeout build, we find that the median duration of a timeout build (19.7 minutes) is more than five times that of a build that produces a pass or fail result (3.4 minutes). To better understand the factors contributing to timeout builds, we model timeout builds using characteristics of project build history, build queued time, timeout tendency, size, and author experience based on data collected from 105,663 CI builds. Our model demonstrates a discriminatory power that vastly surpasses that of a random predictor (Area Under the Receiver Operating characteristic Curve, i.e., AUROC = 0.939) and is highly stable in its performance (AUROC optimism = 0.0001). Moreover, our model reveals that the build history and timeout tendency features are strong indicators of timeout builds, with the timeout status of the most recent build accounting for the largest proportion of the explanatory power. A longitudinal analysis of the incidences of timeout builds (i.e., a study conducted over a period of time) indicates that 64.03% of timeout builds occur consecutively. In such cases, it takes a median of 24 hours before a build that passes or fails occurs. Our results imply that CI providers should exploit build history to anticipate timeout builds.

Preprint - PDF

Bibtex

@article{weeraddana2024tse,
  Author = {Nimmi Rashinika Weeraddana and Mahmoud Alfadel and Shane McIntosh},
  Title = {{Characterizing Timeout Builds in Continuous Integration}},
  Year = {2024},
  Journal = {IEEE Transactions on Software Engineering},
  Volume = {50},
  Number = {6},
  Pages = {1450–1463}
}