* [PATCH] event: Fix event handlers to raise SkipPackage
@ 2014-05-30 12:32 Richard Purdie
2014-05-30 13:41 ` Richard Purdie
0 siblings, 1 reply; 3+ messages in thread
From: Richard Purdie @ 2014-05-30 12:32 UTC (permalink / raw)
To: bitbake-devel
If an event handler triggers a SkipPackage event, we really want that
event to be received and processed by the higher code levels. Currently
it was getting caught and ignored which was leading to recipes
being present when they clearly shouldn't have been.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index e205043..a95db52 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -96,6 +96,8 @@ def fire_class_handlers(event, d):
if name in _catchall_handlers or name in evt_hmap:
try:
execute_handler(name, handler, event, d)
+ except bb.parse.SkipPackage:
+ raise
except Exception:
continue
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] event: Fix event handlers to raise SkipPackage
2014-05-30 12:32 [PATCH] event: Fix event handlers to raise SkipPackage Richard Purdie
@ 2014-05-30 13:41 ` Richard Purdie
2014-05-30 14:52 ` [PATCH v2] " Richard Purdie
0 siblings, 1 reply; 3+ messages in thread
From: Richard Purdie @ 2014-05-30 13:41 UTC (permalink / raw)
To: bitbake-devel
On Fri, 2014-05-30 at 13:32 +0100, Richard Purdie wrote:
> If an event handler triggers a SkipPackage event, we really want that
> event to be received and processed by the higher code levels. Currently
> it was getting caught and ignored which was leading to recipes
> being present when they clearly shouldn't have been.
>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>
> diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
> index e205043..a95db52 100644
> --- a/bitbake/lib/bb/event.py
> +++ b/bitbake/lib/bb/event.py
> @@ -96,6 +96,8 @@ def fire_class_handlers(event, d):
> if name in _catchall_handlers or name in evt_hmap:
> try:
> execute_handler(name, handler, event, d)
> + except bb.parse.SkipPackage:
> + raise
> except Exception:
> continue
>
I'm just looking at another bug and this try/except Exception doesn't
make sense to me. It basically comes from:
http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/bitbake/lib/bb/event.py?h=rpurdie/t222&id=37cb4cc02b2e2b6c338c5943747e0a1ef15176b3
although the BaseException was changed to an Exception so that
SystemExit would pass through.
The problem is that if a handler like ConfigParsed raises an error
staying "eek stop", the system will merrily swallow it and the build
will continue. Ditto something like an ExpansionError.
Specifically, I really want to do:
http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=rpurdie/t222&id=6fe4e8aee3ac5b3ea9f285eae373c36de46c094e
since actually raising a SystemExit is pretty evil. Most of the build
works fine with this, except for the event handlers and its due to the
above clause. I've long wondered where the problem was but never dug
into it as yet, it now turns out its this.
So is there a good reason to keep that "continue" there or can we remove
this and assume is the handler is raising an exception, its an error?
Chris, any thoughts on what this was aiming to do originally?
Cheers,
Richard
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v2] event: Fix event handlers to raise SkipPackage
2014-05-30 13:41 ` Richard Purdie
@ 2014-05-30 14:52 ` Richard Purdie
0 siblings, 0 replies; 3+ messages in thread
From: Richard Purdie @ 2014-05-30 14:52 UTC (permalink / raw)
To: bitbake-devel
If an event handler triggers a SkipPackage event, we really want that
event to be received and processed by the higher code levels. Currently
it was getting caught and ignored which was leading to recipes
being present when they clearly shouldn't have been.
In general this exception catching looks to be doing the wrong thing. It
was introduced in
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/bitbake/lib/bb/event.py?id=37cb4cc02b2e2b6c338c5943747e0a1ef15176b3
but we likely want exceptions to pass through to the higher layers.
This patch therefore removes that code.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
index e205043..04d775c 100644
--- a/bitbake/lib/bb/event.py
+++ b/bitbake/lib/bb/event.py
@@ -94,10 +94,7 @@ def fire_class_handlers(event, d):
evt_hmap = _event_handler_map.get(eid, {})
for name, handler in _handlers.iteritems():
if name in _catchall_handlers or name in evt_hmap:
- try:
- execute_handler(name, handler, event, d)
- except Exception:
- continue
+ execute_handler(name, handler, event, d)
ui_queue = []
@atexit.register
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-05-30 14:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-30 12:32 [PATCH] event: Fix event handlers to raise SkipPackage Richard Purdie
2014-05-30 13:41 ` Richard Purdie
2014-05-30 14:52 ` [PATCH v2] " Richard Purdie
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.