Openembedded Core Discussions
 help / color / mirror / Atom feed
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
>>


  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