Re: KeyError: 'getpwuid(): uid not found: 1000' in do_package phase


Martin Jansa
 

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 Mon, Nov 16, 2020 at 10:10 PM Marek Belisko <marek.belisko@...> wrote:
On Mon, Nov 16, 2020 at 9:52 PM Joshua Watt <jpewhacker@...> 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



Join yocto@lists.yoctoproject.org to automatically receive all group messages.