All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nicolas Jeker" <n.jeker@delisys.ch>
To: Martin Jansa <Martin.Jansa@gmail.com>
Cc: yocto <yocto@yoctoproject.org>
Subject: Re: [yocto] KeyError: 'getpwuid(): uid not found: 1000' in do_package phase
Date: Tue, 17 Nov 2020 14:18:38 +0100	[thread overview]
Message-ID: <feda2c563a65d246df52372b7b8777b694ec84f1.camel@delisys.ch> (raw)
In-Reply-To: <CA+chaQdQgTp=CxNrj1BOB60ra4PakJoHNNC7euZzt4pH-J_=hA@mail.gmail.com>

On Mon, 2020-11-16 at 23:27 +0100, Martin Jansa wrote:
> https://github.com/webOS-ports/meta-webos-ports/commit/9fd17a67cdbed92df13a14b002a189b4c6c2d442
> 
> is an example where it triggers this error, but doesn't trigger the
> more common host-user-contaminated QA error (unless you happened to
> use UID 1001 on host for the user running bitbake).
> 
> Similarly when the files are "installed" with e.g. "cp -a" for which
> layers usually use "cp -R --no-dereference --preserve=mode,links -v".

On a related note, the do_install reference in the manual gives some
advice on how to use cp and tar without contaminating the build.

The relevant part:

Safe methods for installing files include the following:
 * The install utility. This utility is the preferred method.
 * The cp command with the "--no-preserve=ownership" option.
 * The tar command with the "--no-same-owner" option. See the
   bin_package.bbclass file in the meta/classes directory of the
   Source Directory for an example.

https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#ref-tasks-install

> On Mon, Nov 16, 2020 at 10:10 PM Marek Belisko <
> marek.belisko@gmail.com> wrote:
> > On Mon, Nov 16, 2020 at 9:52 PM Joshua Watt <jpewhacker@gmail.com>
> > wrote:
> > > 
> > > 
> > > On 11/16/20 2:38 PM, Marek Belisko wrote:
> > > 
> > > Hi,
> > > 
> > > I'm bumping my project based on zeus to dunfell. I've update all
> > > layers and in one of my recipes I'm seeing following issue (not
> > see on
> > > zeus at all):
> > > WARNING: cv-my-test-1.0-r0 do_package: KeyError in
> > ./package/srv/10%.png
> > > ERROR: cv-my-test-1.0-r0 do_package: Error executing a python
> > function
> > > in exec_python_func() autogenerated:
> > > 
> > > The stack trace of python calls that resulted in this
> > exception/failure was:
> > > File: 'exec_python_func() autogenerated', lineno: 2, function:
> > <module>
> > >       0001:
> > >   *** 0002:sstate_report_unihash(d)
> > >       0003:
> > > File: '/home/ubuntu/projects/my-test-
> > /poky/meta/classes/sstate.bbclass',
> > > lineno: 840, function: sstate_report_unihash
> > >       0836:    report_unihash = getattr(bb.parse.siggen,
> > 'report_unihash', None)
> > >       0837:
> > >       0838:    if report_unihash:
> > >       0839:        ss = sstate_state_fromvars(d)
> > >   *** 0840:        report_unihash(os.getcwd(), ss['task'], d)
> > >       0841:}
> > >       0842:
> > >       0843:#
> > >       0844:# Shell function to decompress and prepare a package
> > for installation
> > > File: '/home/ubuntu/projects/my-test-
> > /poky/bitbake/lib/bb/siggen.py',
> > > lineno: 555, function: report_unihash
> > >       0551:
> > >       0552:            if "." in self.method:
> > >       0553:                (module, method) =
> > self.method.rsplit('.', 1)
> > >       0554:                locs['method'] =
> > > getattr(importlib.import_module(module), method)
> > >   *** 0555:                outhash =
> > bb.utils.better_eval('method(path,
> > > sigfile, task, d)', locs)
> > >       0556:            else:
> > >       0557:                outhash =
> > bb.utils.better_eval(self.method +
> > > '(path, sigfile, task, d)', locs)
> > >       0558:
> > >       0559:            try:
> > > File: '/home/ubuntu/projects/my-test-
> > /poky/bitbake/lib/bb/utils.py',
> > > lineno: 420, function: better_eval
> > >       0416:    if extraglobals:
> > >       0417:        ctx = copy.copy(ctx)
> > >       0418:        for g in extraglobals:
> > >       0419:            ctx[g] = extraglobals[g]
> > >   *** 0420:    return eval(source, ctx, locals)
> > >       0421:
> > >       0422:@contextmanager
> > >       0423:def fileslocked(files):
> > >       0424:    """Context manager for locking and unlocking file
> > locks."""
> > > File: '<string>', lineno: 1, function: <module>
> > >    File "<string>", line 1, in <module>
> > > 
> > > File: '/home/ubuntu/projects/my-test-
> > /poky/meta/lib/oe/sstatesig.py',
> > > lineno: 595, function: OEOuthashBasic
> > >       0591:            process(root)
> > >       0592:            for f in files:
> > >       0593:                if f == 'fixmepath':
> > >       0594:                    continue
> > >   *** 0595:                process(os.path.join(root, f))
> > >       0596:    finally:
> > >       0597:        os.chdir(prev_dir)
> > >       0598:
> > >       0599:    return h.hexdigest()
> > > File: '/home/ubuntu/projects/my-test-
> > /poky/meta/lib/oe/sstatesig.py',
> > > lineno: 551, function: process
> > >       0547:                    add_perm(stat.S_IXOTH, 'x')
> > >       0548:
> > >       0549:                if include_owners:
> > >       0550:                    try:
> > >   *** 0551:                        update_hash(" %10s" %
> > > pwd.getpwuid(s.st_uid).pw_name)
> > >       0552:                        update_hash(" %10s" %
> > > grp.getgrgid(s.st_gid).gr_name)
> > >       0553:                    except KeyError:
> > >       0554:                        bb.warn("KeyError in %s" %
> > path)
> > >       0555:                        raise
> > > Exception: KeyError: 'getpwuid(): uid not found: 1000'
> > > 
> > > ERROR: Logfile of failure stored in:
> > > /home/ubuntu/projects/my-test-/build/tmp/work/aarch64-poky-
> > linux/cv-my-test/1.0-r0/temp/log.do_package.27454
> > > 
> > > Is this known issue or something related to my host setup?
> > > 
> > > This means the recipe is having host contamination (where the UID
> > of the user doing the build is leaking into the file system).
> > Some ideas what can be the source of that. This recipe is basically
> > just copying files from archive to final rootfs without any special
> > processing or so.
> > > 
> > > Thanks and BR,
> > > 
> > > marek
> > > 
> > > 
> > > 
> > > 
> > 
> > BR,
> > 
> > marek
> > 
> > 
> > 
> 



  reply	other threads:[~2020-11-17 13:18 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-16 20:38 KeyError: 'getpwuid(): uid not found: 1000' in do_package phase Marek Belisko
2020-11-16 20:52 ` [yocto] " Joshua Watt
2020-11-16 21:10   ` Marek Belisko
2020-11-16 22:27     ` Martin Jansa
2020-11-17 13:18       ` Nicolas Jeker [this message]
2020-11-17 18:53         ` Marek Belisko
2021-05-06  8:57       ` Thomas Hill
2021-05-06 10:44         ` [yocto] " Martin Jansa
2021-05-07  7:10           ` Thomas Hill
2021-05-07 12:28             ` Richard Purdie
2021-05-10  9:08               ` Thomas Hill
2021-05-10  9:25                 ` Martin Jansa
2021-05-11  7:21                   ` Thomas Hill

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=feda2c563a65d246df52372b7b8777b694ec84f1.camel@delisys.ch \
    --to=n.jeker@delisys.ch \
    --cc=Martin.Jansa@gmail.com \
    --cc=yocto@yoctoproject.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 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.