From: Robert Yang <liezhi.yang@windriver.com>
To: "Andreas Müller" <schnitzeltony@googlemail.com>,
openembedded-core@lists.openembedded.org
Subject: Re: util-macros.do_package failed Re: Build failure
Date: Sat, 5 Apr 2014 16:29:17 +0800 [thread overview]
Message-ID: <533FBEDD.3030902@windriver.com> (raw)
In-Reply-To: <533EE97D.90207@windriver.com>
On 04/05/2014 01:18 AM, Robert Yang wrote:
>
> Hi Andreas,
>
> I met the error on the master, we seldom met this error, but we did meet
> it once in a while, I did several rough investigations, I think that the
> problem is happened when etc/passwd is being created but is null before
> write anything into it, and the util-macros.do_package runs right at the
> same time, here is a hack way to reproduce it: (Use qemux86 as an example):
>
> $ bitbake base-passwd
>
> # Move the passwd file
> $ mv tmp/sysroots/qemux86/etc/passwd tmp/sysroots/qemux86/etc/passwd.bak
>
> # Create a passwd file which is null
> $ touch tmp/sysroots/qemux86/etc/passwd
>
> $ bitbake util-macros
>
> Then we will see the errors.
>
> The build is be OK if there is no tmp/sysroots/qemux86/etc/passwd, maybe
> the pwd.getpwnam() reads the host's /etc/passwd when there is no
> tmp/sysroots/qemux86/etc/passwd (not sure about this). but it would fail
> if it exists and is null.
>
> Maybe we can let the do_package depend on base-passwd:do_populate_sysroot
> to fix the problem.
>
It seems that this is not a good idea since once we add the following line,
it would cause all the target recipe's do_package depends on
base-passwd:do_populate_sysroot, this would cause the arch "all" depends on
eglibc since base-passwd depends on eglibc, we may need fix in another way.
do_package[depends] += "base-passwd:do_populate_sysroot"
// Robert
> Will do more investigations tomorrow.
>
> Night.
>
> // Robert
>
> On 11/14/2012 05:30 PM, Andreas Müller wrote:
>> On Wed, Nov 14, 2012 at 10:15 AM, Andreas Müller
>> <schnitzeltony@googlemail.com> wrote:
>>> Ciao,
>>>
>>> with latest layer HEADS and build from scratch I get:
>>>
>>> KeyError: 'getpwnam(): name not found: root'
>>>
>>> ERROR: The stack trace of python calls that resulted in this
>>> exception/failure was:
>>> ERROR: File "fixup_perms", line 227, in <module>
>>> ERROR:
>>> ERROR: File "fixup_perms", line 155, in fixup_perms
>>> ERROR:
>>> ERROR: File "fixup_perms", line 32, in __init__
>>> ERROR:
>>> ERROR: File "fixup_perms", line 42, in _setdir
>>> ERROR:
>>> ERROR: File "fixup_perms", line 66, in _procuid
>>> ERROR:
>>> ERROR: The code that was being executed was:
>>> ERROR: 0223: each_file = os.path.join(root, f)
>>> ERROR: 0224: fix_perms(each_file,
>>> fs_perms_table[dir].fmode, fs_perms_table[dir].fuid,
>>> fs_perms_table[dir].fgid, dir)
>>> ERROR: 0225:
>>> ERROR: 0226:
>>> ERROR: *** 0227:fixup_perms(d)
>>> ERROR: 0228:
>>> ERROR: [From file: 'fixup_perms', lineno: 227, function: <module>]
>>> ERROR: 0151: for path in target_path_vars:
>>> ERROR: 0152: dir = d.getVar(path, True) or ""
>>> ERROR: 0153: if dir == "":
>>> ERROR: 0154: continue
>>> ERROR: *** 0155: fs_perms_table[dir] =
>>> fs_perms_entry(bb.data.expand("%s 0755 root root false - - -" % (dir),
>>> d))
>>> ERROR: 0156:
>>> ERROR: 0157: # Now we actually load from the configuration files
>>> ERROR: 0158: for conf in get_fs_perms_list(d).split():
>>> ERROR: 0159: if os.path.exists(conf):
>>> ERROR: [From file: 'fixup_perms', lineno: 155, function: fixup_perms]
>>> ERROR: Function failed: fixup_perms
>>> ERROR: Logfile of failure stored in:
>>> /home/andreas/tmp/oe-core-eglibc/work/armv7a-vfp-neon-angstrom-linux-gnueabi/util-macros-1_1.17-r0/temp/log.do_package.28653
>>>
>>> ERROR: Task 4450
>>> (/home/andreas/data/oe-core/sources/openembedded-core/meta/recipes-graphics/xorg-util/util-macros_1.17.bb,
>>>
>>> do_package) failed with exit code '1'
>>> NOTE: Tasks Summary: Attempted 3985 tasks of which 397 didn't need to
>>> be rerun and 1 failed.
>>>
>>> The only additional information I found up to now:
>>>
>>> * the code mentioned in error message is found in package.bbclass.
>>> * in sysroot/etc/passwd there is a line 'root::0:0:root:/home/root:/bin/sh'
>>>
>>> Any ideas?
>>>
>> Additional info: After running
>>
>> bitbake -ccleansstate util-macros util-macros-native
>>
>> the build continues as without issues. Some missing dependency race?
>>
>> Andreas
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>
next prev parent reply other threads:[~2014-04-05 8:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-14 9:15 Build failure Andreas Müller
2012-11-14 9:30 ` Andreas Müller
2014-04-04 17:18 ` util-macros.do_package failed " Robert Yang
2014-04-04 20:01 ` Burton, Ross
2014-04-04 22:44 ` Richard Purdie
2014-04-05 8:29 ` Robert Yang [this message]
2014-04-05 9:33 ` Richard Purdie
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=533FBEDD.3030902@windriver.com \
--to=liezhi.yang@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=schnitzeltony@googlemail.com \
/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