From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Martin Jansa <martin.jansa@gmail.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [RFC][PATCHv2] cmake.bbclass, perf: don't re-create ${B}
Date: Tue, 22 Sep 2015 09:10:34 +0100 [thread overview]
Message-ID: <1442909434.12435.242.camel@linuxfoundation.org> (raw)
In-Reply-To: <1442867607-8913-1-git-send-email-Martin.Jansa@gmail.com>
On Mon, 2015-09-21 at 22:33 +0200, Martin Jansa wrote:
> * otherwise there is race-condition between do_configure rm+mkdir and
> bitbake trying to use it as CWD for do_populate_lic task, which
> results in errors like this:
>
> NOTE: recipe perf-1.0-r9: task do_configure: Started
> NOTE: recipe perf-1.0-r9: task do_populate_lic: Started
> ERROR: Build of do_populate_lic failed
> ERROR: Traceback (most recent call last):
> File "/OE/build/oe-core/bitbake/lib/bb/build.py", line 553, in exec_task
> return _exec_task(fn, task, d, quieterr)
> File "/OE/build/oe-core/bitbake/lib/bb/build.py", line 493, in _exec_task
> exec_func(func, localdata)
> File "/OE/build/oe-core/bitbake/lib/bb/build.py", line 227, in exec_func
> exec_func_python(func, d, runfile, cwd=adir)
> File "/OE/build/oe-core/bitbake/lib/bb/build.py", line 252, in exec_func_python
> os.chdir(cwd)
> OSError: [Errno 2] No such file or directory: '/OE/build/oe-core/tmp-glibc/work/qemux86-oe-linux/perf/1.0-r9/perf-1.0'
> NOTE: recipe perf-1.0-r9: task do_populate_lic: Failed
> ERROR: Task 7 (/OE/build/oe-core/openembedded-core/meta/recipes-kernel/perf/perf.bb, do_populate_lic) failed with exit code '1'
> NOTE: recipe perf-1.0-r9: task do_configure: Succeeded
>
> or even longer exception:
>
> NOTE: recipe perf-1.0-r9: task do_populate_lic: Started
> NOTE: recipe perf-1.0-r9: task do_configure: Started
> ERROR: Error executing a python function in /OE/build/oe-core/openembedded-core/meta/recipes-kernel/perf/perf.bb:
>
> The stack trace of python calls that resulted in this exception/failure was:
> File: 'sstate_task_postfunc', lineno: 14, function: <module>
> 0010: sstate_package(shared_state, d)
> 0011: os.umask(omask)
> 0012:
> 0013:
> *** 0014:sstate_task_postfunc(d)
> 0015:
> File: 'sstate_task_postfunc', lineno: 4, function: sstate_task_postfunc
> 0001:
> 0002:def sstate_task_postfunc(d):
> 0003: shared_state = sstate_state_fromvars(d)
> *** 0004: sstate_install(shared_state, d)
> 0005: for intercept in shared_state['interceptfuncs']:
> 0006: bb.build.exec_func(intercept, d)
> 0007: omask = os.umask(002)
> 0008: if omask != 002:
> File: 'sstate.bbclass', lineno: 113, function: sstate_install
> 0109: if os.path.exists(state[1]):
> 0110: oe.path.copyhardlinktree(state[1], state[2])
> 0111:
> 0112: for postinst in (d.getVar('SSTATEPOSTINSTFUNCS', True) or '').split():
> *** 0113: bb.build.exec_func(postinst, d)
> 0114:
> 0115: for lock in locks:
> 0116: bb.utils.unlockfile(lock)
> 0117:
The longer stack trace is actually really helpful. I believe the code
here should inherit the working directory of the current task rather
than rely on the default of ${B} which bitbake assigns if there is
nothing else.
The trouble is that if the function does specify a dirs flag, it should
really use that instead of a supplied parameter and if we use the
parameter to exec_func(), it won't do that.
There aren't that many uses of SSTATEPOSTINSTFUNCS in our metadata so
the easiest way to fix this short term is probably to go through them
and add specific [dirs] options to the functions.
Cheers,
Richard
next prev parent reply other threads:[~2015-09-22 8:10 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-02 16:00 Robert Yang : perf: fix for rebuilding Martin Jansa
2015-09-10 16:05 ` Martin Jansa
2015-09-15 5:29 ` [PATCH][master][fido][dizzy] Revert "perf: fix for rebuilding" Martin Jansa
2015-09-15 5:53 ` Robert Yang
2015-09-16 7:48 ` Robert Yang
2015-09-16 8:57 ` Burton, Ross
2015-09-16 9:07 ` Robert Yang
2015-09-21 19:04 ` Martin Jansa
2015-09-21 19:36 ` [RFC][PATCH] perf: don't re-create ${B} Martin Jansa
2015-09-21 20:33 ` [RFC][PATCHv2] cmake.bbclass, " Martin Jansa
2015-09-21 20:55 ` Burton, Ross
2015-09-22 5:44 ` Martin Jansa
2015-09-22 8:10 ` Richard Purdie [this message]
2015-09-22 9:36 ` Burton, Ross
2015-09-22 5:48 ` [RFC][PATCHv3] autotools.bbclass, " Martin Jansa
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=1442909434.12435.242.camel@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=martin.jansa@gmail.com \
--cc=openembedded-core@lists.openembedded.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox