We found this problem when a recipe tries to chown files to a user (www-data in this case). On my host system's /etc/passwd and /etc/group did not have a www-data user, I noted in my logs warnings: warning: user www-data does not exist - using root But when I checked the tmp/sysroots/qemux86-64/etc/passwd, www-data user existed in that file. Further investigation via strace, revealed that smart first looks in the newly created rootfs/etc/passwd (which is not installed yet) and then falls back to the host's /etc/passwd, clearly we need to fall back to the sysroot password file, which will have the right collection of users. This applies to both passwd and group. Tom Walsh pointed this issue out originally on IRC
Created attachment 1702 [details] smart failure to access correct /etc/passwd
This occurs if you fail to add RDEPENDS_${PN} = "base-passwd" to a recipe which then uses chown / install to change user/group ownership.
This appears to still happen in dizzy-12.0.0. However, in dizzy-12.0.1 it appears to have been fixed. In dizzy-12.0.1 when using the attached recipe, the "install -o www-data -g www-data -d ${D}/foobar" fails as expected even when using a user that exists on the host. I believe this was fixed with the series of patches at: http://lists.openembedded.org/pipermail/openembedded-core/2014-November/099051.html
As mentioned this is fixed in 1.7.1.