Patchwork [bitbake-devel] trouble during parsing

login
register
mail settings
Submitter Jason Wessel
Date Feb. 25, 2013, 3:13 p.m.
Message ID <512B7FA9.6030508@windriver.com>
Download mbox | patch
Permalink /patch/45039/
State New
Headers show

Comments

Jason Wessel - Feb. 25, 2013, 3:13 p.m.
On 02/24/2013 08:28 PM, Flanagan, Elizabeth wrote:
> On Sun, Feb 24, 2013 at 6:12 PM, Flanagan, Elizabeth
> <elizabeth.flanagan@intel.com> wrote:
>> On Wed, Feb 20, 2013 at 6:31 AM, Chris Larson <clarson@kergoth.com> wrote:
>>>
>>> On Wed, Feb 20, 2013 at 5:54 AM, Andreas Müller
>>> <schnitzeltony@googlemail.com> wrote:
>>>>
>>>> with current bitbake master I get
>>>>
>>>> ERROR: Command execution failed: Traceback (most recent call
>>>> last):#########################################################
>>>> | ETA: 00:00:17
>>>> File "/home/andreas/oe-core/sources/bitbake/lib/bb/command.py", line
>>>> 92, in runAsyncCommand
>>>> self.cooker.updateCache()
>>>> File "/home/andreas/oe-core/sources/bitbake/lib/bb/cooker.py", line
>>>> 1330, in updateCache
>>>> if not self.parser.parse_next():
>>>> File "/home/andreas/oe-core/sources/bitbake/lib/bb/cooker.py", line
>>>> 1703, in parse_next
>>>> self.virtuals += len(result)
>>>> TypeError: object of type 'ExpansionError' has no len()
>>>
>>>
>>> Hmm, looks like it's returning the exceptions rather than raising them, for
>>> some reason, but that doesn't make much sense — the pool code always raises
>>> any exceptions from its imap iterator's next() method.
>>
>
> Ach, should have updated my email. Seems reverting
> 0a99563a4ea270594fd9a61da46f9387fb79dc66 cleared up the issue.

The real question is what are the expansion errors about here.  This is probably not the right way to fix it, but it at least allows you to see what is behind the expansion error:

Patch

diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 448f899..b166425 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1661,6 +1661,8 @@  class CookerParser(object):
         parsed = None
         try:
             parsed, result = self.results.next()
+            if isinstance(result, BaseException):
+                raise result
         except StopIteration:
             self.shutdown()
             return False