blob: e4808424f558b432987e11584fb2fc2d53f34ff1 [file] [log] [blame] [view]
# Repeated Builds During Code Review: The Case of OpenStack
Automated builds produce a noisy signal. Due to non-deterministic (a.k.a.,
'flaky') behaviour, they can fail when they should have passed. Nevertheless,
it's not uncommon for software organizations to incorporate automated builds in
the code review process. In such cases, a failure from an automated build can
block integration of a change set. To prevent invalid failures from unfairly
blocking integration, organizations may allow developers to request a 'recheck',
which repeats the build without updating the change set. While practical, an
unconstrained recheck command may waste time and resources if it is not applied
judiciously.
In this talk, I will describe our research on the use of the recheck command in
66,932 code reviews from the OpenStack community. We quantitatively analyze (i)
how often build failures are rechecked; (ii) the extent to which invoking
recheck changes build failure outcomes; and (iii) how much waste is generated by
invoking recheck. We observe that (i) 55% of code reviews invoke the recheck
command after a failing build is reported; (ii) invoking the recheck command
only changes the outcome of a failing build in 42% of the cases; and (iii)
invoking the recheck command increases review waiting time by an average of
2,200% and equates to 187.4 compute years of waste—enough compute resources to
compete with the oldest land living animal on earth.
*[Shane McIntosh, University of Waterloo](../speakers.md#smcintosh)*