Bug 1465181 - [run-task] Remove requirement to run as root on POSIX systems, r?gps draft
authorAndrew Halberstadt <ahalberstadt@mozilla.com>
Tue, 29 May 2018 15:58:07 -0400
changeset 802313 023be0e39ffbba3f2041f563fbf1ad163d3dd092
parent 802312 87d0ac8c56192de6333133ab92f17fc36f35e919
child 802314 a3b3af7626bbd8637dab3e232fe98cc859e97371
push id111858
push userahalberstadt@mozilla.com
push dateThu, 31 May 2018 17:24:02 +0000
reviewersgps
bugs1465181
milestone62.0a1
Bug 1465181 - [run-task] Remove requirement to run as root on POSIX systems, r?gps There is a superficial check in the run-task script which requires root. Simply removing this check allows a native-engine task (which isn't running as root) to proceed. MozReview-Commit-ID: 44XavXAwxxn
taskcluster/scripts/run-task
--- a/taskcluster/scripts/run-task
+++ b/taskcluster/scripts/run-task
@@ -501,28 +501,23 @@ def main(args):
     # expand ~ in some paths
     if args.vcs_checkout:
         args.vcs_checkout = os.path.expanduser(args.vcs_checkout)
     if args.tools_checkout:
         args.tools_checkout = os.path.expanduser(args.tools_checkout)
     if 'HG_STORE_PATH' in os.environ:
         os.environ['HG_STORE_PATH'] = os.path.expanduser(os.environ['HG_STORE_PATH'])
 
-    if IS_POSIX:
-        if running_as_root:
-            user, group, gids = get_posix_user_group(args.user, args.group)
-            uid = user.pw_uid
-            gid = group.gr_gid
-        else:
-            print('error: run-task must be run as root on POSIX platforms')
-            return 1
-    else:
-        uid = gid = gids = None
+    uid = gid = gids = None
+    if IS_POSIX and running_as_root:
+        user, group, gids = get_posix_user_group(args.user, args.group)
+        uid = user.pw_uid
+        gid = group.gr_gid
 
-    if os.path.exists("/dev/kvm"):
+    if running_as_root and os.path.exists("/dev/kvm"):
         # Ensure kvm permissions for worker, required for Android x86
         st = os.stat("/dev/kvm")
         os.chmod("/dev/kvm", st.st_mode | 0o666)
 
     # Validate caches.
     #
     # Taskgraph should pass in a list of paths that are caches via an
     # environment variable (which we don't want to pass down to child