On 12-07-22 09:56 PM, Randy MacLeod wrote:
On 12-07-22 08:10 AM, Huang, j (Jackie) wrote:


On Sun, 2012-07-22 at 14:53 +0800, [email protected] wrote:
From: Jackie Huang <[email protected]>

A race condition can occur when adding users and groups to the
passwd and group files, in [YOCTO #1794], 10 times retry added
but it is not fixed completely.

This fix re-writes the useradd_preinst and useradd_sysroot with
python and use locking of bb.utils to lock the passwd and group
files before executing useradd/groupadd commands to avoid the
lock race themselves.

[YOCTO #2779]

Signed-off-by: Jackie Huang <[email protected]>
---
  meta/classes/useradd.bbclass |  284
++++++++++++++++++------------------------
  1 files changed, 124 insertions(+), 160 deletions(-)

Please resend this with the whitespace issues resolved. Its near
impossible to review as it stands :(

Re-sent, sorry about that.

Hi Jackie,

I don't see that your new version sent at 8:01 is any better
but I could be wrong...

Robert,
Please take a look and help Jackie with formatting
and perhaps small single purpose commits as needed -
i.e. separate the whitespace changes from the functional changes.

Summary:
   Jackie did the right thing; I need to read more carefully. ;-)

// Randy

Details:

I've looked at the two emails more closely now and see the
white space problem lines and saw that Jackie did fix those up
in the new patch. Specifically:

-USERADDSETSCENEDEPS = "${MLPREFIX}base-passwd:do_populate_sy
+USERADDSETSCENEDEPS = "base-passwd:do_populate_sysroot_setsc
 USERADDSETSCENEDEPS_virtclass-cross = ""
 USERADDSETSCENEDEPS_virtclass-native = ""
 USERADDSETSCENEDEPS_virtclass-nativesdk = ""
@@ -154,61 +118,61 @@ do_package_setscene[depends] = "${USERA

 # Recipe parse-time sanity checks
 def update_useradd_after_parse(d):
-    useradd_packages = d.getVar('USERADD_PACKAGES', True)
+       useradd_packages = d.getVar('USERADD_PACKAGES', True)

-    if not useradd_packages:
-        raise bb.build.FuncFailed, "%s inherits useradd but
+       if not useradd_packages:
+               raise bb.build.FuncFailed, "%s inherits usera

-    for pkg in useradd_packages.split():
-        if not d.getVar('USERADD_PARAM_%s' % pkg, True) and
-            raise bb.build.FuncFailed, "%s inherits useradd
+       for pkg in useradd_packages.split():
+               if not d.getVar('USERADD_PARAM_%s' % pkg, Tru
+                       raise bb.build.FuncFailed, "%s inheri

 python __anonymous() {
-    update_useradd_after_parse(d)
+       update_useradd_after_parse(d)
 }

Sorry for the noise.

// Randy




This problem is happening frequently so I'd like to get this
worked out upstream.

Thanks,
// Randy



Thanks,
Jackie


Cheers,

Richard


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core





--
# Randy MacLeod. MTS, Linux, Wind River
Direct: 613.963.1350

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to