[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH OSSTEST v4] ms-flights-summary: Produce an HTML report of all active flights
On Fri, 2015-09-18 at 10:02 +0100, Ian Campbell wrote: > On Wed, 2015-09-16 at 14:07 +0100, Ian Campbell wrote: > > [...] > > +sub add_event($$$$$) { > > + my ($job,$reso,$type,$info,$time) = @_; > > + > > + die unless $type =~ m/^(Start|End)/; > > + > > + $job->{OverallTime} //= {}; > > + > > + $job->{Reso}{$reso} //= {}; > > + $job->{Reso}{$reso}{$type} = $time; > > + > > + if ($type eq "Start") { > > + die if $job->{Reso}{$reso}{Info}; > > This is attempting to check for conflicting events. > > However in the case of sharing hosts as noted in the commit message there > is a gotcha which is that while the host is being prepared by one job the > rest appears as rogue/anonymous jobs (with Info==(preparing), FWIW) and > I've just observed this happen because 2 of those had the same start time > (which I suppose will be quite common?). > > The attached plan shows this for the sharing of 'host grain-weevil' for > "build-wheezy-i386 e1adb8b552dda5c653958083c9c7457f0398ad09" purposes. > > Anonymous jobs use $reso + $info as their (faked) job name, so they end > up > clashing here. > > I did the below as a quick fix, now I'm wondering if perhaps I should > suffix the faked up job name of these anon jobs with something unique > from > either $evt->{Share} or $evt->{Allocated}. > > ->{Allocated}{Shareix} looks promising. What do you think? This would be the following. So far I think this is the best option. diff --git a/ms-flights-summary b/ms-flights-summary index 60b6b88..24eb844 100755 --- a/ms-flights-summary +++ b/ms-flights-summary @@ -153,7 +153,8 @@ sub add_event($$$$$) { $job->{Reso}{$reso}{$type} = $time; if ($type eq "Start") { - die if $job->{Reso}{$reso}{Info}; + die "$reso $job->{Reso}{$reso}{Info}" + if $job->{Reso}{$reso}{Info}; $job->{Reso}{$reso}{Info} = $info; } else { die if $job->{Reso}{$reso}{Info} ne $info; @@ -203,6 +204,9 @@ sub gather_events() { # Fake up a name from the $reso and the event's info # field (if available). my $anon_job = join(" ", ($reso,$evt->{Info})); + $anon_job .= " (shared $evt->{Allocated}{Shareix})" + if $evt->{Allocated}; + $anon_jobs{$anon_job} //= { Reso => {}, Anon => 1 }; $job = $anon_jobs{$anon_job}; } _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |