announcing prototype buildbot<->bunsendb<->bunsenweb integration

Frank Ch. Eigler fche@redhat.com
Fri Jun 10 15:59:30 GMT 2022


Hi -

Not long after mjw's buildbot setup in April here on sourceware, we've
coupled to it a testsuite log file collection system.  This has now
reached a prototyping stage where it is more interactively browsable
and might become useful for actual test problem diagnosis.  Here's how
that stuff works:

0) sourceware has a buildbot master & a fleet of donated workers, as
   mjw announced over the last month or two, and here:
   https://gnu.wildebeest.org/~mark/sourceware.txt

1) most buildbot job steps include a bunsen_logfile_upload_steps() operation,
   which collects named log/sum/trs type files from the workers and
   pushes them into git://sourceware.org/git/bunsendb.git under a tag name
   that corresponds to the build

   https://sourceware.org/git/?p=bunsendb.git;a=blob;f=README  

2) a bunsendb.timer/.service job pair on sourceware regularly polls
   this git repository, and runs a bunsen processing pipeline to
   analyze all the logs and deposit results into an sqlite database
   file back on sourceware

   https://sourceware.org/git/?p=bunsen.git;a=blob;f=README;hb=refs/heads/fche/bunsenql

   /sourceware/projects/bunsen-home/bunsenweb/bunsenql.sqlite3 (on sourceware)
   /sourceware/projects/bunsen-home/bunsenql (bunsenql branch code checkout)

3) a bunsenweb.service job on sourceware activates the r-httpd-browse
   part of bunsen to let people use a browser to query / browse both
   the analysis database and the underlying log files.  This part is
   quite early, light on eye candy, will change rapidly.  But it may
   already be useful, so we're decloaking:

   https://builder.sourceware.org/testruns/ << entry point

   Some things to try.  All this is computed on the fly from the
   database, but most operations are surprisingly quick.

   - click on a testrun (row), observe the metadata associated with
     that testrun and the list of files, each of which may be viewed

   - experiment with the filter fields at the top to require presence
     of dejagnu .exp file names (ignore the automake trs stuff for now),
     or metadata; each uses sql LIKE pattern syntax for the operations
          https://www.sqlite.org/lang_expr.html#like
     e.g. https://tinyurl.com/43ntbsw2 to filter to some most recent
                          binutils-gdb gcc/clang rawhide full testsruns

   - click checkbox on two or more testruns to compare, hit "diff",
     getting a difference report between the runs
     e.g. https://tinyurl.com/2p88vu2h to compare some recent gdb builds

   - from there, observe the comparison grid; in each cell, links are
     generally given to the particular segment of the log/sum files
     where the test case failed/passed differently from its peers
     e.g. https://tinyurl.com/2p8evcca

   Lots of things will be coming here, including taking advantage of
   testrun cluster analysis that's already being done, a
   per-testrun testcase search/browse engine, other search operators,
   testsuite summary (vs detail) grids, who knows, ideas welcome!


Note that 2) and 3) can be also done independently on your own
workstation, if for example you git-clone the sourceware bunsendb.  Or
all of 1) 2) 3) if you have your own bunch of log files to import into
a whole separate installation.

The README files provide some instruction, and we'll have more man
pages before long.

- FChE



More information about the Bunsen mailing list