| Summary: | [sstate] do_populate_sysroot_setscene race condition with useradd recipes | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] Meta-yocto | Reporter: | Jiajun Xu <jiajun.xu> |
| Component: | meta-yocto | Assignee: | Scott Garman <scott.a.garman> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium | CC: | bluelightning, edwin.zhai, josh, ke.yu, msm-oss, poky.bs.watcher, poky.watcher, richard.purdie, sgw, yi.zhao |
| Version: | unspecified | ||
| Target Milestone: | 1.2 M3 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | 2012-01-03: 0% Implemented | ||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | --- | |
|
Description
Jiajun Xu
2011-11-02 23:59:51 UTC
My guess is this is related to useradd Yes, it seems that way to me also. dbus fails with: ----------------- Running groupadd commands... grep: /media/large/tmp2/sysroots/qemux86/etc/group: No such file or directory pseudo: pseudo: can't run groupadd: Permission denied ----------------- shadow-sysroot: ----------------- DEBUG: Staging files from /media/large/tmp2/work/i586-poky-linux/shadow-sysroot-4.1.4.3-r0/sysroot-destdir/ to /media/large/tmp2/sysroots/qemux86/ install: cannot stat `/media/large/tmp2/work/i586-poky-linux/shadow-sysroot-4.1.4.3-r0/image/etc/login.defs': No such file or directory ----------------- Paul: what git rev did you see this with most recently? I was under the impression that this commit should have fixed the issue: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=d0151bcd7bc8124fc9c448a01eb0e093c4f23250 Scott - that fix only affects packaging, this is at sysroot_setscene time. I'm not sure what revision I was at when I did this but it was quite recently. I've confirmed this is still happening with current master as at revision 3ab018c6254b883a6b6a61f79405dc3f8e40ad77. Thanks for the follow-ups, I'm trying to reproduce the bug now. To reproduce, you need a decent sstate cache and an empty TMPDIR. If you then build something which includes dbus/avahi, you'll see the setcenes for their do_populate_sysroot functions fail. Its due to a race, they're happening before base-passwd is installed into the sysroot. Unfortunately there aren't dependencies between setscene tasks so we're going to have to find a more creative way to get this working without races. Perhaps we could touch the group/passwd files if missing and later call update-passwd against them in base-passwd's setscene function? Also, are these really ERROR's? I think it recovers and just reruns the tasks in the RunQueue? Can we change this to something like 'SSTATE FAILURE:' instead of 'ERROR:'? -M Resolved with the patches ending with http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=75fcfde0617cf528a9506fbdc6f7f97e56298bbe (In reply to comment #9) > Resolved with the patches ending with > http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=75fcfde0617cf528a9506fbdc6f7f97e56298bbe These appear to have applied cleanly to Josh's edison branch. The one below had some small conflicts from the bb.data -> d rename. http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=9a58e312ef596739923f4bc44ff8ecadaa88ddd9 Completed some build tests and things appear to be working. -M |