All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] Reporting and debugging improvements
@ 2015-06-15 17:13 Ian Jackson
  2015-06-15 17:13 ` [OSSTEST PATCH 01/12] Osstest.pm: Provide new db_prepare helper with built-in debugging Ian Jackson
                   ` (12 more replies)
  0 siblings, 13 replies; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Campbell

I have been working on a new script called sg-report-host-history.
This is the result so far.

The series so far consists of mostly useful improvements, and one
bugfix to the existing reporting arrangements.

Everything but the last patch is IMO ready to go in right now.  

Thanks,
Ian.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 01/12] Osstest.pm: Provide new db_prepare helper with built-in debugging
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:01   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 02/12] sg-report-job-history: Use db_prepare Ian Jackson
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

No callers, so no functional change, as yet.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest.pm |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/Osstest.pm b/Osstest.pm
index e8bd77b..7d6949f 100644
--- a/Osstest.pm
+++ b/Osstest.pm
@@ -35,7 +35,7 @@ BEGIN {
                       getmethod
                       postfork
                       $dbh_tests db_retry db_retry_retry db_retry_abort
-                      db_begin_work
+                      db_begin_work db_prepare
                       ensuredir get_filecontents_core_quiet system_checked
                       nonempty visible_undef show_abs_time
                       );
@@ -268,6 +268,13 @@ sub db_retry ($$$;$$) {
     return $r;
 }
 
+sub db_prepare ($) {
+    # caller must ensure global filehandle DEBUG is open
+    my ($stmt) = @_;
+    print ::DEBUG "DB PREPARING:\n$stmt\n";
+    return $dbh_tests->prepare($stmt);
+}
+
 sub postfork () {
     $mjobdb->jobdb_postfork();
 }
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 02/12] sg-report-job-history: Use db_prepare
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
  2015-06-15 17:13 ` [OSSTEST PATCH 01/12] Osstest.pm: Provide new db_prepare helper with built-in debugging Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:01   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 03/12] cs-bisection-step: " Ian Jackson
                   ` (10 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 sg-report-job-history |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/sg-report-job-history b/sg-report-job-history
index 409e3d5..e285caa 100755
--- a/sg-report-job-history
+++ b/sg-report-job-history
@@ -67,7 +67,7 @@ END
     die "$flight ? @$branches ?" if @$branches!=1;
     @branches= @$branches;
 
-    my $selectq= $dbh_tests->prepare(<<END);
+    my $selectq= db_prepare(<<END);
         SELECT job FROM jobs WHERE flight=? ORDER BY JOB
 END
     $selectq->execute($flight);
@@ -84,7 +84,7 @@ if (defined($flight)) {
     push @jobs, $job;
 }
 
-our $failstepq= $dbh_tests->prepare(<<END);
+our $failstepq= db_prepare(<<END);
         SELECT * FROM steps
          WHERE flight=? AND job=?
            AND status!='pass'
@@ -120,7 +120,7 @@ sub run_getinfo ($) {
     }
 }
 
-our $revisionsq= $dbh_tests->prepare(<<END);
+our $revisionsq= db_prepare(<<END);
         SELECT * FROM runvars
          WHERE flight=? AND job=?
            AND name LIKE E'built\\_revision\\_\%'
@@ -136,7 +136,7 @@ sub add_revisions ($$$$) {
     }
 }
 
-our $buildsq= $dbh_tests->prepare(<<END);
+our $buildsq= db_prepare(<<END);
         SELECT * FROM runvars
          WHERE flight=? AND job=?
            AND name LIKE E'\%buildjob'
@@ -171,13 +171,13 @@ END
          WHERE ($cond)
       ORDER BY flight DESC
 END
-    my $flightsq= $dbh_tests->prepare(<<END);
+    my $flightsq= db_prepare(<<END);
         SELECT * $fromstuff
          LIMIT $limit
 END
     $flightsq->execute(@params);
 
-    my $hostsq= $dbh_tests->prepare(<<END);
+    my $hostsq= db_prepare(<<END);
         SELECT DISTINCT name
 	 FROM runvars
 	 JOIN flights USING (flight)
@@ -195,7 +195,7 @@ END
 	push @hostvarcols, $hostvar;
     }
 
-    my $hostq= $dbh_tests->prepare(<<END);
+    my $hostq= db_prepare(<<END);
         SELECT val FROM runvars WHERE flight=? AND job=? AND name=?
 END
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 03/12] cs-bisection-step: Use db_prepare
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
  2015-06-15 17:13 ` [OSSTEST PATCH 01/12] Osstest.pm: Provide new db_prepare helper with built-in debugging Ian Jackson
  2015-06-15 17:13 ` [OSSTEST PATCH 02/12] sg-report-job-history: Use db_prepare Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:02   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 04/12] sg-report-flight: " Ian Jackson
                   ` (9 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

And do away with one ad-hoc statement dump.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 cs-bisection-step |   21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/cs-bisection-step b/cs-bisection-step
index 67a92b7..bf41f81 100755
--- a/cs-bisection-step
+++ b/cs-bisection-step
@@ -203,7 +203,7 @@ END
 	       AND flight = ?
 END
 
-    my $sth= $dbh_tests->prepare(<<END);
+    my $sth= db_prepare(<<END);
 
         SELECT url.val AS uval,
 	       rev.val AS rval,
@@ -303,7 +303,7 @@ sub findbasics () {
             ? "flight = $specflights{$fp}" : "TRUE";
     }
 
-    my $latestq= $dbh_tests->prepare(<<END);
+    my $latestq= db_prepare(<<END);
             SELECT flights.flight, steps.status,
                    $flight_is_not_broken AS notbroken
                 FROM flights JOIN steps USING (flight)
@@ -316,7 +316,7 @@ sub findbasics () {
                      $maxflight_cond
                ORDER BY notbroken DESC, flights.started DESC
 END
-    my $basisq= $dbh_tests->prepare(<<END);
+    my $basisq= db_prepare(<<END);
         SELECT * FROM flights JOIN steps USING (flight)
 	   WHERE job = ?
 	     AND testid = ?
@@ -553,14 +553,14 @@ END
 
     print STDERR "Searching for test results:\n";
 
-    my $stepq= $dbh_tests->prepare("
+    my $stepq= db_prepare("
        SELECT * FROM steps
           WHERE flight = ?
             AND job = ?
             AND testid = ?
     ");
 
-    my $jobq= $dbh_tests->prepare("
+    my $jobq= db_prepare("
        SELECT * FROM flights JOIN jobs USING (flight)
           WHERE job = ?
             AND $blessingscond
@@ -1059,7 +1059,7 @@ sub preparejob ($$$) {
 END
     my (@trevisions) = split / /, $choose->{Rtuple};
 
-    my $treeq= $dbh_tests->prepare(<<END);
+    my $treeq= db_prepare(<<END);
         SELECT name FROM runvars
           WHERE  flight=? AND job=?
             AND  name = ?
@@ -1082,7 +1082,7 @@ END
 
     # Check for subjobs:
 
-    my $jobq= $dbh_tests->prepare(<<END);
+    my $jobq= db_prepare(<<END);
         SELECT name, val FROM runvars
             WHERE  flight=? AND job=?
               AND  name LIKE '%job';
@@ -1156,7 +1156,7 @@ END
 
     $dbh_tests->do("DROP TABLE bisection_runvars");
 
-    my $jobsetq= $dbh_tests->prepare(<<END);
+    my $jobsetq= db_prepare(<<END);
         UPDATE runvars SET val=?
             WHERE  flight=? AND job=? AND name=?
 END
@@ -1185,7 +1185,7 @@ sub populateflight () {
     }
 
     my $removehosts= 
-    my $addhost= $dbh_tests->prepare(<<END);
+    my $addhost= db_prepare(<<END);
         INSERT INTO runvars (flight,job,name,val,synth)
                      VALUES (?,     ?,  ?,   ?,  'f')
 END
@@ -1244,8 +1244,7 @@ END
               LIMIT $maxequalflights + 1;
 END
 
-    print DEBUG "equalflightsq:\n$equalflightsqt";
-    my $equalflightsq = $dbh_tests->prepare($equalflightsqt);
+    my $equalflightsq = db_prepare($equalflightsqt);
 
     db_retry($popflight,'constructing', $dbh_tests,[qw(flights)], sub {
         print STDERR "Checking for flail (since $repro_firstflight)...\n";
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 04/12] sg-report-flight: Use db_prepare
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (2 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 03/12] cs-bisection-step: " Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:02   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 05/12] sg-report-job-history: Add a debugging statement Ian Jackson
                   ` (8 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

And do away with two commented-out ad-hoc statement dumps.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 sg-report-flight |   28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/sg-report-flight b/sg-report-flight
index 80777af..bdaf1c8 100755
--- a/sg-report-flight
+++ b/sg-report-flight
@@ -163,7 +163,7 @@ sub findaflight ($$$$$) {
         return undef;
     }
 
-    my $checkq= $dbh_tests->prepare(<<END);
+    my $checkq= db_prepare(<<END);
         SELECT status FROM steps WHERE flight=? AND job=? AND testid=?
 END
 
@@ -188,11 +188,10 @@ END
       ) AS sub
       ORDER BY blessing ASC, flight DESC
 END
-    #print DEBUG "===\n$flightsq\n===\n";
-    $flightsq= $dbh_tests->prepare($flightsq);
+    $flightsq= db_prepare($flightsq);
     $flightsq->execute(@blessings);
 
-    my $buildflightsq= $dbh_tests->prepare(<<END);
+    my $buildflightsq= db_prepare(<<END);
         SELECT val FROM runvars
 	 WHERE flight = ?
            AND name LIKE '%buildjob'
@@ -204,10 +203,9 @@ END
 		  AND name=?
 		GROUP BY flight, job, val
 END
-    #print DEBUG "===\n$mismatchq\n===\n";
-    $revisionsq= $dbh_tests->prepare($revisionsq);
+    $revisionsq= db_prepare($revisionsq);
 
-    my $revisionsosstestq= $dbh_tests->prepare(<<END);
+    my $revisionsosstestq= db_prepare(<<END);
             SELECT harness AS val FROM flights_harness_touched
                 WHERE flight=?
 END
@@ -319,7 +317,7 @@ END
     };
     $jobs= [ sort { $colmap->($a) cmp $colmap->($b) } @$jobs ];
 
-    my $stepsq= $dbh_tests->prepare(<<END);
+    my $stepsq= db_prepare(<<END);
         SELECT * FROM steps
             WHERE flight=$flight AND job=?
             ORDER BY stepno
@@ -441,7 +439,7 @@ END
             });
         }
 
-        my $revh= $dbh_tests->prepare(<<END);
+        my $revh= db_prepare(<<END);
             SELECT * FROM runvars
                 WHERE flight=$flight AND job='$j->{job}'
                   AND name like 'built_revision_%'
@@ -623,7 +621,7 @@ sub justifyfailures ($;$) {
               AND $blessingscond
             LIMIT 1
 END
-    $anypassq= $dbh_tests->prepare($anypassq);
+    $anypassq= db_prepare($anypassq);
 
     my $duration_estimator= duration_estimator($branch, $blessings[0]);
     foreach my $failv (@failures) {
@@ -802,7 +800,7 @@ sub htmloutjob ($$) {
     my $title= "Info on flight $fi->{Flight} job $job";
     my $branch= $fi->{FlightInfo}{branch};
 
-    our $htmlout_jobq ||= $dbh_tests->prepare(<<END);
+    our $htmlout_jobq ||= db_prepare(<<END);
         SELECT * FROM jobs WHERE flight = ? AND job = ?
 END
     $htmlout_jobq->execute($fi->{Flight}, $job);
@@ -826,7 +824,7 @@ END
 END
 
     my %issteplog;
-    my $stepsq= $dbh_tests->prepare(<<END);
+    my $stepsq= db_prepare(<<END);
         SELECT * FROM steps
                 WHERE flight=? AND job=?
              ORDER BY stepno ASC
@@ -892,7 +890,7 @@ END
 <h2>Test control variables</h2>
 <table rules=all><tr><th>Name</th><th>Value</th><th>Source</th></tr>
 END
-    my $varsq= $dbh_tests->prepare(<<END);
+    my $varsq= db_prepare(<<END);
         SELECT * FROM runvars
                 WHERE flight=? AND job=?
              ORDER BY synth, name
@@ -1086,7 +1084,7 @@ END
     }
     my $started_str = show_abs_time $fi->{FlightInfo}{started};
 
-    our $htmlout_finishedq ||= $dbh_tests->prepare(<<END);
+    our $htmlout_finishedq ||= db_prepare(<<END);
         SELECT
  (SELECT max(finished) FROM steps WHERE flight=?)                 max,
  (SELECT count(*) FROM steps WHERE finished IS NULL AND flight=?) unfinished
@@ -1110,7 +1108,7 @@ END
 <td>Test harness revision(s):</td><td>
 END
 
-    our $htmlout_touchedq ||= $dbh_tests->prepare(<<END);
+    our $htmlout_touchedq ||= db_prepare(<<END);
         SELECT harness FROM flights_harness_touched WHERE flight=?
 END
     $htmlout_touchedq->execute($fi->{Flight});
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 05/12] sg-report-job-history: Add a debugging statement
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (3 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 04/12] sg-report-flight: " Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:02   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 06/12] sg-report-job-history: Slightly prettify sql Ian Jackson
                   ` (7 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 sg-report-job-history |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/sg-report-job-history b/sg-report-job-history
index e285caa..f5f3496 100755
--- a/sg-report-job-history
+++ b/sg-report-job-history
@@ -150,6 +150,8 @@ sub altcolour ($) {
 sub processjobbranch ($$) {
     my ($j,$bra) = @_;
 
+    print DEBUG "processjobbranch('$j',", ($bra ? "'$bra'" : 'undef'), ")\n";
+
     my %rev_grid_col;
     my @rev_grid_cols;
     my @test_rows;
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 06/12] sg-report-job-history: Slightly prettify sql
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (4 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 05/12] sg-report-job-history: Add a debugging statement Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:03   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 07/12] sg-report-job-history: Cope if history too short Ian Jackson
                   ` (6 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

No functional change apart from slightly better debug output.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 sg-report-job-history |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sg-report-job-history b/sg-report-job-history
index f5f3496..e4f35bf 100755
--- a/sg-report-job-history
+++ b/sg-report-job-history
@@ -160,9 +160,7 @@ sub processjobbranch ($$) {
     my $cond = "job = ? AND $blessingscond";
     my (@params) = ($j, @blessings);
     if (defined $bra) {
-        $cond .= <<END;
-           AND branch = ?
-END
+        $cond .= " AND branch = ?";
         push @params, $bra;
     }
     my $limit= 100;
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 07/12] sg-report-job-history: Cope if history too short
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (5 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 06/12] sg-report-job-history: Slightly prettify sql Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:04   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 08/12] sg-report-job-history: Show start time Ian Jackson
                   ` (5 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

If there have been less than 99 relevant flights, the inner SELECT (to
determine the minimum flight number) would return NULL.  And anything
> NULL is NULL and NULL is treated as false.  So the host runvar
identification would break.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 sg-report-job-history |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/sg-report-job-history b/sg-report-job-history
index e4f35bf..76cb146 100755
--- a/sg-report-job-history
+++ b/sg-report-job-history
@@ -182,10 +182,11 @@ END
 	 FROM runvars
 	 JOIN flights USING (flight)
 	WHERE ($cond)
-	  AND flight >= (
+	  AND flight >= COALESCE(
+             (
 	      SELECT flight $fromstuff
 	      LIMIT 1 OFFSET $offset
-          )
+	     ), 0)
      ORDER BY name;
 END
     $hostsq->execute(@params, @params); # sql text contains $cond twice
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 08/12] sg-report-job-history: Show start time
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (6 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 07/12] sg-report-job-history: Cope if history too short Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:04   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 09/12] reporting: Move report_run_getinfo and some colours into Executive.pm Ian Jackson
                   ` (4 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 sg-report-job-history |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/sg-report-job-history b/sg-report-job-history
index 76cb146..bbb85fd 100755
--- a/sg-report-job-history
+++ b/sg-report-job-history
@@ -251,7 +251,8 @@ END
         print H "<html><head><title>$title</title></head><body>\n";
         print H "<h1>$title</h1>\n";
         print H "<table rules=all>";
-        print H "<tr><th>flight</th><th>branch</th><th>failure</th>\n";
+        print H "<tr><th>started</th><th>flight</th>",
+	        "<th>branch</th><th>failure</th>\n";
         print H "<th>", (join ", ", @hostvarcols), "</th>\n";
         foreach my $c (@rev_grid_cols) {
             print H "<th>".encode_entities($c)."</th>\n";
@@ -264,6 +265,10 @@ END
             my $colour= "bgcolor=\"$r->{Colour}\"";
             my $altcolour= altcolour($alternate);
             print H "<tr $altcolour>";
+	    my $started = $r->{Flight}{started};
+	    print H "<td>";
+	    print H show_abs_time $started if $started;
+	    print H "</td>\n";
             my $flt= $r->{Flight}{flight};
             $url= "$c{ReportHtmlPubBaseUrl}/$flt";
             print H "<td><a href=\"$url\">$flt</a></td>\n";
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 09/12] reporting: Move report_run_getinfo and some colours into Executive.pm
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (7 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 08/12] sg-report-job-history: Show start time Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:05   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 10/12] reporting: Add colours as optional export tag, and provide $blue Ian Jackson
                   ` (3 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

This is to support a forthcoming sg-report-host-history.

No functional change.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Executive.pm  |   45 +++++++++++++++++++++++++++++++++++++++++++++
 sg-report-job-history |   48 ++++--------------------------------------------
 2 files changed, 49 insertions(+), 44 deletions(-)

diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm
index 118a91a..90c615a 100644
--- a/Osstest/Executive.pm
+++ b/Osstest/Executive.pm
@@ -45,6 +45,7 @@ BEGIN {
     @ISA         = qw(Exporter);
     @EXPORT      = qw(get_harness_rev grabrepolock_reexec
                       findtask @all_lock_tables
+                      report_run_getinfo report_altcolour
                       tcpconnect_queuedaemon plan_search
                       alloc_resources alloc_resources_rollback_begin_work
                       resource_check_allocated resource_shared_mark_ready
@@ -188,6 +189,50 @@ sub opendb ($) {
     return $dbh;
 }
 
+#---------- history reporting ----------
+
+our $green=  '#008800';
+our $red=    '#ff8888';
+our $yellow= '#ffff00';
+our $purple= '#ff00ff';
+
+sub report_run_getinfo ($) {
+    # $f is a joined flight/job row, must contain at least
+    #    flight job status
+    my ($f) = @_;
+    my $status= $f->{status};
+    if ($status eq 'pass') {
+        return { Summary => "($status)", Colour => $green };
+    } elsif ($status eq 'fail') {
+	our $failstepq //= db_prepare(<<END);
+	    SELECT * FROM steps
+	     WHERE flight=? AND job=?
+	       AND status!='pass'
+	  ORDER BY stepno
+	     LIMIT 1
+END
+        $failstepq->execute($f->{flight}, $f->{job});
+        my $fs= $failstepq->fetchrow_hashref();
+        if (!defined $fs) {
+            return { Summary => "(unknown)", Colour => $yellow };
+        } elsif ($fs->{status} eq 'fail') {
+            return { Summary => "$fs->{testid}", Colour => $red };
+        } else {
+            return { Summary => "$fs->{testid} $fs->{status}",
+                     Colour => $red };
+        }
+    } elsif ($status eq 'blocked') {
+        return { Summary => "blocked", Colour => $purple },
+    } else {
+        return { Summary => "($f->{status})", Colour => $yellow };
+    }
+}
+
+sub report_altcolour ($) {
+    my ($bool) = @_;
+    return "bgcolor=\"#".(qw(d0d0d0 ffffff))[$bool]."\"";
+}
+
 #---------- host (and other resource) allocation ----------
 
 our $taskid;
diff --git a/sg-report-job-history b/sg-report-job-history
index bbb85fd..18821b3 100755
--- a/sg-report-job-history
+++ b/sg-report-job-history
@@ -25,6 +25,7 @@ use IO::Handle;
 use HTML::Entities;
 
 use Osstest::TestSupport;
+use Osstest::Executive;
 
 our (@blessings,@branches);
 our $limit= 500;
@@ -84,42 +85,6 @@ if (defined($flight)) {
     push @jobs, $job;
 }
 
-our $failstepq= db_prepare(<<END);
-        SELECT * FROM steps
-         WHERE flight=? AND job=?
-           AND status!='pass'
-      ORDER BY stepno
-         LIMIT 1
-END
-
-our $green=  '#008800';
-our $red=    '#ff8888';
-our $yellow= '#ffff00';
-our $purple= '#ff00ff';
-
-sub run_getinfo ($) {
-    my ($f) = @_;
-    my $status= $f->{status};
-    if ($status eq 'pass') {
-        return { Summary => "($status)", Colour => $green };
-    } elsif ($status eq 'fail') {
-        $failstepq->execute($f->{flight}, $f->{job});
-        my $fs= $failstepq->fetchrow_hashref();
-        if (!defined $fs) {
-            return { Summary => "(unknown)", Colour => $yellow };
-        } elsif ($fs->{status} eq 'fail') {
-            return { Summary => "$fs->{testid}", Colour => $red };
-        } else {
-            return { Summary => "$fs->{testid} $fs->{status}",
-                     Colour => $red };
-        }
-    } elsif ($status eq 'blocked') {
-        return { Summary => "blocked", Colour => $purple },
-    } else {
-        return { Summary => "($f->{status})", Colour => $yellow };
-    }
-}
-
 our $revisionsq= db_prepare(<<END);
         SELECT * FROM runvars
          WHERE flight=? AND job=?
@@ -142,11 +107,6 @@ our $buildsq= db_prepare(<<END);
            AND name LIKE E'\%buildjob'
 END
 
-sub altcolour ($) {
-    my ($bool) = @_;
-    return "bgcolor=\"#".(qw(d0d0d0 ffffff))[$bool]."\"";
-}
-
 sub processjobbranch ($$) {
     my ($j,$bra) = @_;
 
@@ -201,7 +161,7 @@ END
 END
 
     while (my $f= $flightsq->fetchrow_hashref()) {
-        my $ri= run_getinfo($f);
+        my $ri= report_run_getinfo($f);
 
 	$ri->{Hosts} = [ ];
 	foreach my $hostvar (@hostvarcols) {
@@ -263,7 +223,7 @@ END
         my @alt_revs= ('0')x $#rev_grid_cols;
         foreach my $r (@test_rows) {
             my $colour= "bgcolor=\"$r->{Colour}\"";
-            my $altcolour= altcolour($alternate);
+            my $altcolour= report_altcolour($alternate);
             print H "<tr $altcolour>";
 	    my $started = $r->{Flight}{started};
 	    print H "<td>";
@@ -286,7 +246,7 @@ END
                     !defined($v) ? 0 :
                     $last_revs[$i] eq $v;
                 $alt_revs[$i] ^= !$same;
-                print H "<td ".altcolour($alt_revs[$i]).">";
+                print H "<td ".report_altcolour($alt_revs[$i]).">";
                 if (defined $v) {
                     my $vp= $v;
                     if (defined $lastrev && $v eq $lastrev) {
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 10/12] reporting: Add colours as optional export tag, and provide $blue
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (8 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 09/12] reporting: Move report_run_getinfo and some colours into Executive.pm Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:06   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs Ian Jackson
                   ` (2 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Executive.pm |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm
index 90c615a..6edbfee 100644
--- a/Osstest/Executive.pm
+++ b/Osstest/Executive.pm
@@ -52,9 +52,9 @@ BEGIN {
                       duration_estimator
                       db_pg_dsn opendb opendb_state
                       );
-    %EXPORT_TAGS = ( );
+    %EXPORT_TAGS = ( colours => [qw($green $red $yellow $purple $blue)] );
 
-    @EXPORT_OK   = qw();
+    @EXPORT_OK   = @{ $EXPORT_TAGS{colours} };
 }
 
 # DATABASE TABLE LOCK HIERARCHY
@@ -195,6 +195,7 @@ our $green=  '#008800';
 our $red=    '#ff8888';
 our $yellow= '#ffff00';
 our $purple= '#ff00ff';
+our $blue=   '#0000ff';
 
 sub report_run_getinfo ($) {
     # $f is a joined flight/job row, must contain at least
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (9 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 10/12] reporting: Add colours as optional export tag, and provide $blue Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:07   ` Ian Campbell
  2015-06-15 17:13 ` [OSSTEST PATCH 12/12] RFC: sg-report-job-history Ian Jackson
  2015-06-16  9:01 ` [PATCH 00/12] Reporting and debugging improvements Ian Campbell
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 Osstest/Executive.pm |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm
index 6edbfee..6c16fdd 100644
--- a/Osstest/Executive.pm
+++ b/Osstest/Executive.pm
@@ -204,7 +204,8 @@ sub report_run_getinfo ($) {
     my $status= $f->{status};
     if ($status eq 'pass') {
         return { Summary => "($status)", Colour => $green };
-    } elsif ($status eq 'fail') {
+    } elsif ($status eq 'fail' or $status eq 'broken') {
+	my $failcolour = $status eq 'fail' ? $red : $yellow;
 	our $failstepq //= db_prepare(<<END);
 	    SELECT * FROM steps
 	     WHERE flight=? AND job=?
@@ -217,10 +218,12 @@ END
         if (!defined $fs) {
             return { Summary => "(unknown)", Colour => $yellow };
         } elsif ($fs->{status} eq 'fail') {
-            return { Summary => "$fs->{testid}", Colour => $red };
+            return { Summary => "$fs->{testid}", Colour => $failcolour };
+        } elsif ($fs->{status} eq 'broken') {
+            return { Summary => "$fs->{testid} broken", Colour => $yellow };
         } else {
             return { Summary => "$fs->{testid} $fs->{status}",
-                     Colour => $red };
+                     Colour => $failcolour };
         }
     } elsif ($status eq 'blocked') {
         return { Summary => "blocked", Colour => $purple },
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [OSSTEST PATCH 12/12] RFC: sg-report-job-history
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (10 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs Ian Jackson
@ 2015-06-15 17:13 ` Ian Jackson
  2015-06-16  9:01 ` [PATCH 00/12] Reporting and debugging improvements Ian Campbell
  12 siblings, 0 replies; 29+ messages in thread
From: Ian Jackson @ 2015-06-15 17:13 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

This script is still a work in progress.

Things which I know are still needed:
 * --flight= option to make it automatically report host usage for a flight
 * handle db deadlock report (by putting whole script in a db retry)
 * hook this into the automatic reporting in cr-*

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
---
 sg-report-host-history |  243 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 243 insertions(+)
 create mode 100755 sg-report-host-history

diff --git a/sg-report-host-history b/sg-report-host-history
new file mode 100755
index 0000000..7aacb42
--- /dev/null
+++ b/sg-report-host-history
@@ -0,0 +1,243 @@
+#!/usr/bin/perl -w
+
+# This is part of "osstest", an automated testing framework for Xen.
+# Copyright (C) 2009-2013 Citrix Inc.
+# 
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+# 
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+use strict qw(vars);
+
+use DBI;
+use Osstest;
+use IO::Handle;
+use HTML::Entities;
+
+use Osstest::Executive qw(:DEFAULT :colours);
+
+our $limit= 200;
+our $flightlimit;
+our $htmlout = ".";
+our @blessings;
+
+open DEBUG, ">/dev/null";
+
+my $namecond= "(name = 'host' or name like '%_host')";
+csreadconfig();
+
+while (@ARGV && $ARGV[0] =~ m/^-/) {
+    $_= shift @ARGV;
+    last if m/^--?$/;
+    if (m/^--(limit)\=([1-9]\d*)$/) {
+        $$1= $2;
+    } elsif (m/^--flight-limit\=([1-9]\d*)$/) {
+	$flightlimit= $1;
+    } elsif (m/^--blessings?=(.*)$/) {
+        push @blessings, split ',', $1;
+    } elsif (m/^--html-dir=(.*)$/) {
+        $htmlout= $1;
+    } elsif (m/^--debug/) {
+        open DEBUG, ">&2" or die $!;
+        DEBUG->autoflush(1);
+    } else {
+        die "$_ ?";
+    }
+}
+@blessings= qw(real) if !@blessings;
+
+@ARGV or die $!;
+
+$dbh_tests->begin_work;
+
+if (!$flightlimit) {
+    my $flagscond =
+	'('.join(' OR ', map { "f.hostflag = 'blessed-$_'" } @blessings).')';
+    my $nhostsq = db_prepare(<<END);
+        SELECT count(*)
+	  FROM resources r
+	 WHERE restype='host'
+	   AND EXISTS (SELECT 1
+		         FROM hostflags f
+		        WHERE f.hostname=r.resname
+		          AND $flagscond)
+END
+    $nhostsq->execute();
+    my ($nhosts) = $nhostsq->fetchrow_array();
+    print DEBUG "COUNTED $nhosts hosts\n";
+    $flightlimit = $nhosts * $limit * 2;
+}
+
+my $minflightsq = db_prepare(<<END);
+    SELECT flight
+      FROM (
+	SELECT flight
+	  FROM flights
+	 ORDER BY flight DESC
+	 LIMIT $flightlimit
+      ) f
+      ORDER BY flight ASC
+      LIMIT 1
+END
+$minflightsq->execute();
+my ($minflight) = $minflightsq->fetchrow_array();
+$minflight //= 0;
+
+our $flightcond = "(flight > $minflight)";
+
+$dbh_tests->do("SET LOCAL enable_seqscan=false");
+# Otherwise the PostgreSQL query planner likes to do a complete scan
+# of the runvars table, rather than walking backwards through the
+# flights until it has what we've told it is enough.
+
+my $runvarq = db_prepare(<<END);
+    SELECT flight, job, name, val
+      FROM runvars
+     WHERE $namecond
+       AND val = ?
+       AND $flightcond
+     ORDER BY flight DESC
+     LIMIT $limit * 2 + 100
+END
+
+my $endedq = db_prepare(<<END);
+    SELECT finished, testid, status AS laststepstatus
+      FROM steps
+     WHERE flight=? AND job=? AND finished IS NOT NULL
+     ORDER BY finished DESC
+     LIMIT 1
+END
+
+my $infoq = db_prepare(<<END);
+    SELECT blessing, branch, intended, status
+      FROM flights
+      JOIN jobs USING (flight)
+     WHERE flight=? AND job=?
+END
+
+my $allocdq = db_prepare(<<END);
+    SELECT testid, finished, status
+      FROM steps
+     WHERE flight=? AND job=?
+       AND (testid='hosts-allocate' OR step='ts-hosts-allocate')
+     ORDER BY finished ASC
+     LIMIT 1
+END
+
+sub jobquery ($$) {
+    my ($q, $jr) = @_;
+    $q->execute($jr->{flight}, $jr->{job});
+    return $q->fetchrow_hashref();
+}
+
+sub reporthost ($) {
+    my ($hostname) = @_;
+
+    die if $hostname =~ m/[^-_.+0-9a-z]/;
+
+    my $html_file= "$htmlout/host.$hostname.html";
+    open H, "> $html_file.new" or die "$html_file $!";
+
+    my $title= "host history $hostname\n";
+    $title= encode_entities($title);
+    print H "<html><head><title>$title</title></head><body>\n";
+    print H "<h1>$title</h1>\n";
+    print H "<table rules=all><tr>\n";
+
+    print H "<th>alloc testid</th><th>alloc completed</th>\n";
+    print H "<th>job finished</th>\n";
+    print H "<th>role</th>\n";
+
+    print H "<th>flight</th>\n";
+    print H "<th>branch</th><th>intended</th><th>blessing</th>\n";
+
+    print H "<th>job</th><th>failure</th>\n";
+
+    print H "</tr>\n";
+
+    my @rows;
+    $runvarq->execute($hostname);
+
+    print DEBUG "FIRST PASS\n";
+    while (my $jr= $runvarq->fetchrow_hashref()) {
+	print DEBUG "JOB $jr->{flight}.$jr->{job} ";
+
+	my $endedrow = jobquery($endedq, $jr);
+	if (!$endedrow) {
+	    print "no-finished\n";
+	    next;
+	}
+	print DEBUG join " ", map { $endedrow->{$_} } sort keys %$endedrow;
+	print DEBUG ".\n";
+
+	push @rows, { %$jr, %$endedrow };
+    }
+
+    print DEBUG "FOUND ", (scalar @rows), " ROWS\n";
+
+    @rows = sort { $b->{finished} <=> $a->{finished} } @rows;
+    $#rows = $limit-1 if @rows > $limit;
+
+    my $alternate = 0;
+    foreach my $jr (@rows) {
+	print DEBUG "JOB $jr->{flight}.$jr->{job}\n";
+
+	my $ir = jobquery($infoq, $jr);
+	my $ar = jobquery($allocdq, $jr);
+
+	my $altcolour = report_altcolour($alternate);
+	print H "<tr $altcolour>";
+
+	if (!defined $ar->{testid}) {
+	    print H "<td bgcolor=\"$red\"></td>";
+	    print H "<td>?</td>";
+	} else {
+	    if ($ar->{status} eq 'pass') {
+		print H "<td>$ar->{testid}</td>";
+		print H "<td>", (show_abs_time $ar->{finished}), "</td>";
+	    } elsif ($ar->{status} eq 'running') {
+		print H "<td bgcolor=\"$blue\">$ar->{testid}</td>";
+		print H "<td>$ar->{status}</td>";
+	    } else {
+		print H "<td bgcolor=\"$red\">$ar->{testid}</td>";
+		print H "<td>$ar->{status}</td>";
+	    }
+	}
+	print H "\n";
+
+	print H "<td>", (show_abs_time $jr->{finished}), "</td>\n";
+	print H "<td>", $jr->{name}, "</td>\n";
+
+	my $url= "$c{ReportHtmlPubBaseUrl}/$jr->{flight}";
+	print H "<td><a href=\"$url\">$jr->{flight}</a></td>\n";
+	$url= "$c{ReportHtmlPubBaseUrl}/$jr->{flight}/".
+	    encode_entities($jr->{job})."/";
+	print H "<td>$ir->{branch}</td>";
+	print H "<td>$ir->{intended}</td>";
+	print H "<td>";
+	print H $ir->{blessing} unless $ir->{blessing} eq 'running';
+	print H "</td>";
+
+	print H "<td><a href=\"$url\">$jr->{job}</td>\n";
+
+	my $ri = report_run_getinfo({ %$jr, %$ir });
+	print H "<td bgcolor=\"$ri->{Colour}\">$ri->{Summary}</td>\n";
+
+	print H "</tr>\n\n";
+	$alternate ^= 1;
+    }
+
+    print H "</table></body></html>\n";
+}
+
+reporthost $_ foreach @ARGV;
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH 00/12] Reporting and debugging improvements
  2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
                   ` (11 preceding siblings ...)
  2015-06-15 17:13 ` [OSSTEST PATCH 12/12] RFC: sg-report-job-history Ian Jackson
@ 2015-06-16  9:01 ` Ian Campbell
  2015-06-16 10:18   ` Ian Jackson
  12 siblings, 1 reply; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:01 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> I have been working on a new script called sg-report-host-history.
> This is the result so far.
> 
> The series so far consists of mostly useful improvements, and one
> bugfix to the existing reporting arrangements.

Unrelated, but while looking at
http://logs.test-lab.xenproject.org/osstest/results/?C=M;O=A which is
quite long I've often wished that the paths had a few more / instead
of . in them so it was a bit easier to find the specific things I was
after...

Ian.

> Everything but the last patch is IMO ready to go in right now.  
> 
> Thanks,
> Ian.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 01/12] Osstest.pm: Provide new db_prepare helper with built-in debugging
  2015-06-15 17:13 ` [OSSTEST PATCH 01/12] Osstest.pm: Provide new db_prepare helper with built-in debugging Ian Jackson
@ 2015-06-16  9:01   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:01 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> No callers, so no functional change, as yet.
> 
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 02/12] sg-report-job-history: Use db_prepare
  2015-06-15 17:13 ` [OSSTEST PATCH 02/12] sg-report-job-history: Use db_prepare Ian Jackson
@ 2015-06-16  9:01   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:01 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 03/12] cs-bisection-step: Use db_prepare
  2015-06-15 17:13 ` [OSSTEST PATCH 03/12] cs-bisection-step: " Ian Jackson
@ 2015-06-16  9:02   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:02 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> And do away with one ad-hoc statement dump.
> 
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 04/12] sg-report-flight: Use db_prepare
  2015-06-15 17:13 ` [OSSTEST PATCH 04/12] sg-report-flight: " Ian Jackson
@ 2015-06-16  9:02   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:02 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> And do away with two commented-out ad-hoc statement dumps.
> 
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 05/12] sg-report-job-history: Add a debugging statement
  2015-06-15 17:13 ` [OSSTEST PATCH 05/12] sg-report-job-history: Add a debugging statement Ian Jackson
@ 2015-06-16  9:02   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:02 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 06/12] sg-report-job-history: Slightly prettify sql
  2015-06-15 17:13 ` [OSSTEST PATCH 06/12] sg-report-job-history: Slightly prettify sql Ian Jackson
@ 2015-06-16  9:03   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:03 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> No functional change apart from slightly better debug output.
> 
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 07/12] sg-report-job-history: Cope if history too short
  2015-06-15 17:13 ` [OSSTEST PATCH 07/12] sg-report-job-history: Cope if history too short Ian Jackson
@ 2015-06-16  9:04   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:04 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> If there have been less than 99 relevant flights, the inner SELECT (to
> determine the minimum flight number) would return NULL.  And anything
> > NULL is NULL and NULL is treated as false.  So the host runvar
> identification would break.
> 
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 08/12] sg-report-job-history: Show start time
  2015-06-15 17:13 ` [OSSTEST PATCH 08/12] sg-report-job-history: Show start time Ian Jackson
@ 2015-06-16  9:04   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:04 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 09/12] reporting: Move report_run_getinfo and some colours into Executive.pm
  2015-06-15 17:13 ` [OSSTEST PATCH 09/12] reporting: Move report_run_getinfo and some colours into Executive.pm Ian Jackson
@ 2015-06-16  9:05   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:05 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> This is to support a forthcoming sg-report-host-history.
> 
> No functional change.
> 
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 10/12] reporting: Add colours as optional export tag, and provide $blue
  2015-06-15 17:13 ` [OSSTEST PATCH 10/12] reporting: Add colours as optional export tag, and provide $blue Ian Jackson
@ 2015-06-16  9:06   ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:06 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs
  2015-06-15 17:13 ` [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs Ian Jackson
@ 2015-06-16  9:07   ` Ian Campbell
  2015-06-16 10:13     ` Ian Jackson
  0 siblings, 1 reply; 29+ messages in thread
From: Ian Campbell @ 2015-06-16  9:07 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
> ---
>  Osstest/Executive.pm |    9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/Osstest/Executive.pm b/Osstest/Executive.pm
> index 6edbfee..6c16fdd 100644
> --- a/Osstest/Executive.pm
> +++ b/Osstest/Executive.pm
> @@ -204,7 +204,8 @@ sub report_run_getinfo ($) {
>      my $status= $f->{status};
>      if ($status eq 'pass') {
>          return { Summary => "($status)", Colour => $green };
> -    } elsif ($status eq 'fail') {
> +    } elsif ($status eq 'fail' or $status eq 'broken') {
> +	my $failcolour = $status eq 'fail' ? $red : $yellow;
>  	our $failstepq //= db_prepare(<<END);
>  	    SELECT * FROM steps
>  	     WHERE flight=? AND job=?
> @@ -217,10 +218,12 @@ END
>          if (!defined $fs) {
>              return { Summary => "(unknown)", Colour => $yellow };
>          } elsif ($fs->{status} eq 'fail') {
> -            return { Summary => "$fs->{testid}", Colour => $red };
> +            return { Summary => "$fs->{testid}", Colour => $failcolour };
> +        } elsif ($fs->{status} eq 'broken') {
> +            return { Summary => "$fs->{testid} broken", Colour => $yellow };

Not $failcolour?

(Or alternatively why is the fail case changing if not)

>          } else {
>              return { Summary => "$fs->{testid} $fs->{status}",
> -                     Colour => $red };
> +                     Colour => $failcolour };
>          }
>      } elsif ($status eq 'blocked') {
>          return { Summary => "blocked", Colour => $purple },

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs
  2015-06-16  9:07   ` Ian Campbell
@ 2015-06-16 10:13     ` Ian Jackson
  2015-06-16 10:19       ` Ian Campbell
  0 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-16 10:13 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel, Ian Jackson

Ian Campbell writes ("Re: [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs"):
> On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> > Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
...
> > -    } elsif ($status eq 'fail') {
> > +    } elsif ($status eq 'fail' or $status eq 'broken') {
> > +	my $failcolour = $status eq 'fail' ? $red : $yellow;
> >  	our $failstepq //= db_prepare(<<END);
> >  	    SELECT * FROM steps
> >  	     WHERE flight=? AND job=?
> > @@ -217,10 +218,12 @@ END
> >          if (!defined $fs) {
> >              return { Summary => "(unknown)", Colour => $yellow };
> >          } elsif ($fs->{status} eq 'fail') {
> > -            return { Summary => "$fs->{testid}", Colour => $red };
> > +            return { Summary => "$fs->{testid}", Colour => $failcolour };
> > +        } elsif ($fs->{status} eq 'broken') {
> > +            return { Summary => "$fs->{testid} broken", Colour => $yellow };
> 
> Not $failcolour?

Using $failcolour instead of $yellow there would only make a
difference if the job was `fail' but the step was `broken'.  So this
is a bit of an edge case.

But I think in that situation $red is probably better, so I will
change this.

Thanks,
Ian.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 00/12] Reporting and debugging improvements
  2015-06-16  9:01 ` [PATCH 00/12] Reporting and debugging improvements Ian Campbell
@ 2015-06-16 10:18   ` Ian Jackson
  2015-06-16 10:25     ` Ian Campbell
  0 siblings, 1 reply; 29+ messages in thread
From: Ian Jackson @ 2015-06-16 10:18 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel

Ian Campbell writes ("Re: [PATCH 00/12] Reporting and debugging improvements"):
> On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> > I have been working on a new script called sg-report-host-history.
> > This is the result so far.
> > 
> > The series so far consists of mostly useful improvements, and one
> > bugfix to the existing reporting arrangements.
> 
> Unrelated, but while looking at
> http://logs.test-lab.xenproject.org/osstest/results/?C=M;O=A which is
> quite long I've often wished that the paths had a few more / instead
> of . in them so it was a bit easier to find the specific things I was
> after...

This is a good point.  Would you like me to take that as a todo item
for this series ?

If we feel like changing this then I think there is no serious
compatibility problem: old scripts will write and refer to old paths
and new scripts to new ones.  Eventually all will be new.

Ian.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs
  2015-06-16 10:13     ` Ian Jackson
@ 2015-06-16 10:19       ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16 10:19 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Tue, 2015-06-16 at 11:13 +0100, Ian Jackson wrote:
> Ian Campbell writes ("Re: [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs"):
> > On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> > > Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
> ...
> > > -    } elsif ($status eq 'fail') {
> > > +    } elsif ($status eq 'fail' or $status eq 'broken') {
> > > +	my $failcolour = $status eq 'fail' ? $red : $yellow;
> > >  	our $failstepq //= db_prepare(<<END);
> > >  	    SELECT * FROM steps
> > >  	     WHERE flight=? AND job=?
> > > @@ -217,10 +218,12 @@ END
> > >          if (!defined $fs) {
> > >              return { Summary => "(unknown)", Colour => $yellow };
> > >          } elsif ($fs->{status} eq 'fail') {
> > > -            return { Summary => "$fs->{testid}", Colour => $red };
> > > +            return { Summary => "$fs->{testid}", Colour => $failcolour };
> > > +        } elsif ($fs->{status} eq 'broken') {
> > > +            return { Summary => "$fs->{testid} broken", Colour => $yellow };
> > 
> > Not $failcolour?
> 
> Using $failcolour instead of $yellow there would only make a
> difference if the job was `fail' but the step was `broken'.  So this
> is a bit of an edge case.
> 
> But I think in that situation $red is probably better, so I will
> change this.

OK. You can put my Ack on it if you like.

Ian.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 00/12] Reporting and debugging improvements
  2015-06-16 10:18   ` Ian Jackson
@ 2015-06-16 10:25     ` Ian Campbell
  0 siblings, 0 replies; 29+ messages in thread
From: Ian Campbell @ 2015-06-16 10:25 UTC (permalink / raw)
  To: Ian Jackson; +Cc: xen-devel

On Tue, 2015-06-16 at 11:18 +0100, Ian Jackson wrote:
> Ian Campbell writes ("Re: [PATCH 00/12] Reporting and debugging improvements"):
> > On Mon, 2015-06-15 at 18:13 +0100, Ian Jackson wrote:
> > > I have been working on a new script called sg-report-host-history.
> > > This is the result so far.
> > > 
> > > The series so far consists of mostly useful improvements, and one
> > > bugfix to the existing reporting arrangements.
> > 
> > Unrelated, but while looking at
> > http://logs.test-lab.xenproject.org/osstest/results/?C=M;O=A which is
> > quite long I've often wished that the paths had a few more / instead
> > of . in them so it was a bit easier to find the specific things I was
> > after...
> 
> This is a good point.  Would you like me to take that as a todo item
> for this series ?

If you have the tuits, please.

> If we feel like changing this then I think there is no serious
> compatibility problem: old scripts will write and refer to old paths
> and new scripts to new ones.  Eventually all will be new.

I figured eventually we'd need to gc the old ones, or they will clutter
up the directory.

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2015-06-16 10:25 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-15 17:13 [PATCH 00/12] Reporting and debugging improvements Ian Jackson
2015-06-15 17:13 ` [OSSTEST PATCH 01/12] Osstest.pm: Provide new db_prepare helper with built-in debugging Ian Jackson
2015-06-16  9:01   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 02/12] sg-report-job-history: Use db_prepare Ian Jackson
2015-06-16  9:01   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 03/12] cs-bisection-step: " Ian Jackson
2015-06-16  9:02   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 04/12] sg-report-flight: " Ian Jackson
2015-06-16  9:02   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 05/12] sg-report-job-history: Add a debugging statement Ian Jackson
2015-06-16  9:02   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 06/12] sg-report-job-history: Slightly prettify sql Ian Jackson
2015-06-16  9:03   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 07/12] sg-report-job-history: Cope if history too short Ian Jackson
2015-06-16  9:04   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 08/12] sg-report-job-history: Show start time Ian Jackson
2015-06-16  9:04   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 09/12] reporting: Move report_run_getinfo and some colours into Executive.pm Ian Jackson
2015-06-16  9:05   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 10/12] reporting: Add colours as optional export tag, and provide $blue Ian Jackson
2015-06-16  9:06   ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 11/12] reporting: Show slightly better info for broken jobs Ian Jackson
2015-06-16  9:07   ` Ian Campbell
2015-06-16 10:13     ` Ian Jackson
2015-06-16 10:19       ` Ian Campbell
2015-06-15 17:13 ` [OSSTEST PATCH 12/12] RFC: sg-report-job-history Ian Jackson
2015-06-16  9:01 ` [PATCH 00/12] Reporting and debugging improvements Ian Campbell
2015-06-16 10:18   ` Ian Jackson
2015-06-16 10:25     ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.