From: Joshua G Lock <joshua.g.lock@linux.intel.com>
To: "Aníbal Limón" <anibal.limon@linux.intel.com>,
"pidge@toganlabs.com" <pidge@toganlabs.com>,
"Randle, William C" <william.c.randle@intel.com>
Cc: "yocto@yoctoproject.org" <yocto@yoctoproject.org>
Subject: Re: [yocto-autobuilder] [RFC] Add support for generate bitbake error reports
Date: Wed, 15 Jun 2016 14:19:15 +0100 [thread overview]
Message-ID: <1465996755.2995.5.camel@linux.intel.com> (raw)
In-Reply-To: <576038D0.3090100@linux.intel.com>
On Tue, 2016-06-14 at 12:03 -0500, Aníbal Limón wrote:
>
> On 06/14/2016 10:57 AM, Aníbal Limón wrote:
> >
> >
> > On 06/14/2016 10:09 AM, Lock, Joshua G wrote:
> > > On Thu, 2016-06-09 at 16:23 -0500, Aníbal Limón wrote:
> > > > Hi folks,
> > > >
> > > > Currently we support to send error reports to
> > > > errors.yoctoproject.org
> > > > about failing tasks on bitbake using SendErrorReport buildstep
> > > > but we
> > > > have a lack of bitbake related errors like exceptions.
> > > >
> > > > A bug exist to implement this support into Error report web
> > > > [1], i'm
> > > > working on it but for generate bitbake error reports there's a
> > > > need
> > > > of
> > > > some process monitoring the bitbake output in this case the
> > > > Yocto
> > > > Autobuilder.
> > > >
> > > > This email is for review my current implementation for generate
> > > > bitbake
> > > > error reports in the Autobuilder [2] next i'll try to explain
> > > > how it
> > > > works.
> > > >
> > > > I aadded a BitbakeShellCommand [3] class for use in the
> > > > buildsteps
> > > > that
> > > > executes bitbake the main objective of this class is to have
> > > > common
> > > > operations to be made in bitbake commands like create error
> > > > reports
> > > > if
> > > > fails.
> > > >
> > > > For create error reports this class add an stdio observer to
> > > > look at
> > > > bitbake output and if bitbake fails review the bitbake output
> > > > for
> > > > identify if the failure is an non-related task error [4]. If
> > > > the
> > > > observer found bitbake error creates an Error report with the
> > > > information in the master controller.
> > > >
> > > > In order to send the bitbake error to Error report web the
> > > > controller
> > > > transfer the report to the worker using a new DownloadDirectory
> > > > implementation that i made [5], the SendErrorReport buildstep
> > > > works
> > > > on
> > > > the worker side so it's easy to transfer the reports from
> > > > master to
> > > > worker instead of send it by master.
> > > >
> > > > Finally to complete with the job of have the bitbake errors
> > > > reports
> > > > the
> > > > Error report web changes need (i'm working on it) to be
> > > > integrated
> > > > first in order to don't break anything.
> > > >
> > > > Please review it and provide me feedback.
> > >
> > > This would've been much easier to review as a series of patches.
> > >
> > > After a quick read via the gitweb the series as a whole looks
> > > good.
> > >
> > > A couple of review comments:
> > >
> > > In a04b41d37c29191318386455d8d958ff815a3a10 "lib/buildsteps.py:
> > > Add
> > > BitbakeLogLineObserver for BitbakeShellCommands." you have a
> > > comment
> > >
> > > "discard line that are not errors and line that is recipe task
> > > errors"
> > >
> > > but the lines are not actually discarded, afaict from a cursory
> > > read
> > > through they aren't used in the rest of the series
> > > unless errors['bitbake'] == True?
> > >
> > > Could we move the error['log'].append() to after the if statement
> > > which
> > > checks whether this is a bitbake error?
> >
> > Yes and i'll update the commit message to be more consistent.
> >
> > >
> > > Minor nit, in caf472bc696053227825c5a102feef3e17574ba2
> > > "lib/buildsteps:
> > > BitbakeShellCommand add support for create error reports"
> > > in get_error_report_bitbake_dir() you use both " and ' for
> > > strings.
> > >
> > > Same in 40279597615c49bc4f4f067cbab937584b626671
> >
> > I'll fix the typos for only use "".
> >
> > alimon
> >
> I updated the branch with the changes suggested now at,
>
> http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder/log/?h=co
> ntrib/alimon/devel
Is that the right location? For example I still see log lines being
appended to error['log'] *before* the check to discard lines in:
http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder/commit/?h=c
ontrib/alimon/devel&id=742e5bf33934c4ec9de9136a854e190aaf8ba0b3
+ def _handleError(self, line):
+ if not hasattr(self.step, 'errors'):
+ self.step.errors = {}
+ self.step.errors['bitbake'] = False
+ self.step.errors['log'] = []
+
+ # save all the log for be able to get report variables like
+ # machine, target, distro, etc
+ self.step.errors['log'].append(line)
+
+ # discard line that are not errors and line that
+ # is recipe task errors
+ if (not self.rexp_error.match(line)) or \
+ self.rexp_pnpv_error.match(line) or \
+ self.rexp_task_error.match(line) or \
+ self.rexp_log_error.match(line):
+ return
+
+ # if not match recipe task type is a bitbake exception/error
+ self.step.errors['bitbake'] = True
whereas I think we only need to save log lines when it's a bitbake
error, i.e:
+ def _handleError(self, line):
+ if not hasattr(self.step, 'errors'):
+ self.step.errors = {}
+ self.step.errors['bitbake'] = False
+ self.step.errors['log'] = []
+
+ # discard line that are not errors and line that
+ # is recipe task errors
+ if (not self.rexp_error.match(line)) or \
+ self.rexp_pnpv_error.match(line) or \
+ self.rexp_task_error.match(line) or \
+ self.rexp_log_error.match(line):
+ return
+
+ # save all the log for be able to get report variables like
+
# machine, target, distro, etc
+ self.step.errors['log'].ap
pend(line)
+
+ # if not match recipe task type is a bitbake exception/error
+ self.step.errors['bitbake'] = True
Further
http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder/commit/?h=c
ontrib/alimon/devel&id=2523c869855d8e2393b9dd7142c0992908444584
still has typo's in the commit title and message.
Finally, please don't end the subject line of commit messages with a
period.
Regards,
Joshua
> alimon
>
> > >
> > > Regards,
> > >
> > > Joshua
> > >
> > > >
> > > > Cheers,
> > > > alimon
> > > >
> > > > [1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=7583
> > > > [2]
> > > > http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder/log
> > > > /?h=co
> > > > ntrib/alimon/devel
> > > > [3]
> > > > http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder/tre
> > > > e/lib/
> > > > python2.7/site-
> > > > packages/autobuilder/lib/buildsteps.py?h=contrib/alimon/devel#n
> > > > 92
> > > > [4]
> > > > http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder/tre
> > > > e/lib/
> > > > python2.7/site-
> > > > packages/autobuilder/lib/buildsteps.py?h=contrib/alimon/devel#n
> > > > 53
> > > > [5]
> > > > http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder/com
> > > > mit/?h
> > > > =contrib/alimon/devel&id=4022920bb0e56d1eef3dfe7c5e9b4699f801cd
> > > > f1
> >
> >
> >
>
next prev parent reply other threads:[~2016-06-15 13:19 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-09 21:23 [yocto-autobuilder] [RFC] Add support for generate bitbake error reports Aníbal Limón
2016-06-13 8:48 ` Beth 'pidge' Flanagan
2016-06-13 15:09 ` Aníbal Limón
2016-06-13 15:52 ` Beth 'pidge' Flanagan
2016-06-14 15:16 ` Joshua G Lock
[not found] ` <1465916993.2814.14.camel@intel.com>
2016-06-14 15:57 ` Aníbal Limón
2016-06-14 17:03 ` Aníbal Limón
2016-06-15 13:19 ` Joshua G Lock [this message]
2016-06-15 14:07 ` Aníbal Limón
2016-06-15 14:13 ` Joshua G Lock
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1465996755.2995.5.camel@linux.intel.com \
--to=joshua.g.lock@linux.intel.com \
--cc=anibal.limon@linux.intel.com \
--cc=pidge@toganlabs.com \
--cc=william.c.randle@intel.com \
--cc=yocto@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.