|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [OSSTEST PATCH v2 08/41] sg-report-flight: Ask the db for flights of interest
George Dunlap writes ("Re: [OSSTEST PATCH v2 08/41] sg-report-flight: Ask the
db for flights of interest"):
> > On Jul 31, 2020, at 12:37 PM, Ian Jackson <ian.jackson@xxxxxxxxxxxxx> wrote:
> > Specifically, we narrow the initial query to flights which have at
> > least some job with the built_revision_foo we are looking for.
> >
> > This condition is strictly broader than that implemented inside the
> > flight search loop, so there is no functional change.
>
> Assuming this is true, that job / runvar is filtered after extracting this
> information, then...
...
> …I agree that this shoud introduce no other changes.
>
> Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxx>
Thanks.
Just to convince myself, I ran through the argument based on the perl
code. I found a lacuna.
1. The job of findaflight is to find a flight, and it doesn't have
significant side effects - just a return value.
2. If it returns a flight from the loop, $whynot must have been
undef. $whynot is never unset.
Consider some tree in %{ $specver{$thisthat} }.
3. If @revisions is 0 for that tree, $whynot is set. So one of the
two queries $revisionsq or $revisionsosstestq must have returned
some rows.
4. Furthermore, none of those rows must have passed the $wronginfo
grep. If they had, $whynot would have been set. Any row
whose val doesn't contain a colon, and which doesn't end up
in $wronginfo, had a val equal to the requested specver.
5. Colons in this field appear only in mercurial revisions. These are
now obsoelete - we have no mercurial trees. A consequence of this
commit is actually that we should explicitly abolish mercurial
support, at least pending a change to osstest to arrange for the
val column to contain only the hash part and not the number part.
6. Together, these conditons means that if $whynot wasn't set,
there must have been some row whose val matched the specver.
7. Both the $revisionsq and $revisionsosstestq queries take a flight
bound variable condition. This is bound by a value that came out
of @binfos. @binfos is made from %binfos, where the flight number
is the key. %binfos is populated by the @binfos_todo loop, where
it gets the flight number from a @binfos_todos entry - but it
filters them for $bflight == $tflight.
8. So some row must have matched the flight, and the specver, and
of course the name. This is precisely the new condition.
I think this means I should put a commit earlier in this series which
disables mercurial support until the colon version situation is
rationalised.
Ian.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |