Specifically, search for previous identical flights (on the same
branch with the relevant blessings). Here `identical' means it has
exactly the same set of runvars (and, hence, the same set of jobs,
assuming each job has at least one runvar).
This detects various forms of looping which aren't stopped any other
way.
Specifically, one relevant situation occurs if attempts to build
revision (A,B,C) actually build (A,B,C') due to bugs in the build
machinery (which could be bugs in osstest or in the software under
test). In this case the bisector would never spot its previous
attempts as relevant; instead, it would disregard them due to the
mismatched versions. It would then retry the same version, until
something happened to stop it.
As written here, we do not consider osstest revision as a relevant
factor in `identical'. So if reason for the looping is a bug in
osstest we would need to manually un-bless affected flights, as well
as removing the stamp files which are used to record completion of
attempted bisection.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>