Thread (8 messages) 8 messages, 3 authors, 2021-04-05

Re: Autobuilder data collection for intermittent bugs

From: Sakib Sajal <hidden>
Date: 2021-03-31 21:45:36

On 2021-03-26 1:50 p.m., Richard Purdie wrote:
[Please note: This e-mail is from an EXTERNAL e-mail address]

On Thu, 2021-03-25 at 20:00 -0400, Randy MacLeod wrote:
quoted
Thanks for the update Sakib.

We're planning to follow Steve's example of getting commit access to
contrib branches of y-a-h and poky and using the YP AB to start custom
workers/job initially.  We'll also keep working to duplicate the
AB behaviour locally. Trevor has asked Konrad for an additional system
or two since when jobs are running, the web UI is
painfully slow since it's runnig on the same node right now.

The one part that Sakib didn't ask about is how to get all the workers
to do the data collection but that's not urgent since we'll be doing
some smaller scale experiments tomorrow. If you can point out a helpful
example, that'd be good.
The easiest is the fact that the workers all share an NFS mount which
is at BASE_SHAREDDIR in config.json. See also WEBPUBLISH_DIR and
WEBPUBLISH_URL.
Ok. We have not gone there, yet.
We use this to share the reproducible build failures and to share the
reproducible build failures/diffoscope and test results, e.g.:
OEQA_DEBUGGING_SAVED_OUTPUT=${BASE_SHAREDDIR}/pub/repro-fail/

or perhaps more useful is scripts/collect-results:

"""
#!/bin/bash
WORKDIR=$1
DEST=$2
target=$3

RESFILE=$WORKDIR/tmp/log/oeqa/testresults.json

if [ -e $RESFILE ]; then
     mkdir -p $DEST/$target
     cp $WORKDIR/tmp/log/oeqa/testresults.json  $DEST/$target/
fi
"""

would let you do something similar and DEST here is specific to a given
build (date stamp + number). An example would be:

https://autobuilder.yocto.io/pub/non-release/20210129-3/

and then you could create a folder per target. You may need to
include the worker name in the log.
We were able to follow the example and collect results in:

https://autobuilder.yocto.io/pub/non-release/20210331-18/testresults/qa-extras2/2021-03-31--20-32/

host_stats.0

host_stats.1

host_stats.2

We are renaming the files to host_stats_<step>.txt so that it would open 
on the browser.


We were looking at generate-testresult-index.py and would like to append 
a new column called "AB INT" and hyperlink each file in the folder where 
"top" was triggered. Normally there should not be any links. 
Occasionally, we should see 1 or 2 but not more unless things go really 
bad. Do you agree this is a reasonable approach? Who do we contact about 
testing the changes? Trevor has an internal instance running, we could 
try it out there.


Below is the diff of the changes we plan to make for the index. We do 
not completely understand the script yet, we are working on it.

autobuilder/yocto-autobuilder-helper$ git diff 
./scripts/generate-testresult-index.py
diff --git a/scripts/generate-testresult-index.py 
b/scripts/generate-testresult-index.py
index d9d577e..27fe06f 100755
--- a/scripts/generate-testresult-index.py
+++ b/scripts/generate-testresult-index.py
@@ -33,6 +33,7 @@ index_templpate = """
    <th>Performance Reports</th>
    <th>ptest Logs</th>
    <th>Buildhistory</th>
+  <th>AB INT</th>
  </tr>
  </thead>
  <tdata>
@@ -57,6 +58,11 @@ index_templpate = """
       <a href="{{bh[0]}}">{{bh[1]}}</a>
     {% endfor %}
     </td>
+   <td>
+   {% for abint in entry[8] %}
+     <a href="{{abint[0]}}">{{abint[1]}}</a>
+   {% endfor %}
+   </td>
  </tr>
  {% endfor %}
  </tdata>
@@ -145,6 +151,11 @@ for build in sorted(os.listdir(path), key=keygen, 
reverse=True):
      if os.path.exists(buildpath + "/qemuarm/buildhistory.txt"):
          buildhistory.append((reldir + 
"testresults/qemuarm/buildhistory.txt", "qemuarm"))

+    abint = []
+    for p in glob.glob(buildpath + "/ab-int*/host_stats*"):
+        abintname = os.path.basename(os.path.dirname(p))
+        abintreports.append((reldir + "testresults/" + abintname + "/" 
+ os.path.basename(p), perfname.replace("buildperf-",""))) #todo
+
      branch = get_build_branch(buildpath)


Regards,

Sakib, Randy
Cheers,

Richard
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help