From ad02a90ba8ff27d67388530f9ad7f6de62b9fde0 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 17 Jan 2006 21:17:09 +0000
Subject: [PATCH] Report a debug message not an error if initgroups fails due
 to slurmd being run as user other than root (typical testing mode).

---
 src/slurmd/slurmd/req.c     | 5 ++++-
 src/slurmd/slurmstepd/mgr.c | 9 +++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c
index 15775f0729b..6afdcc9c941 100644
--- a/src/slurmd/slurmd/req.c
+++ b/src/slurmd/slurmd/req.c
@@ -2068,7 +2068,10 @@ init_gids_cache(int cache)
 		if (_gids_cache_lookup(pwd->pw_name, pwd->pw_gid))
 			continue;
 		if (initgroups(pwd->pw_name, pwd->pw_gid)) {
-			error("initgroups:init_gids_cache: %m");
+			if ((errno == EPERM) && (getuid() != (uid_t) 0))
+				debug("initgroups:init_gids_cache: %m");
+			else
+				error("initgroups:init_gids_cache: %m");
 			continue;
 		}
 		if ((gids = _getgroups()) == NULL)
diff --git a/src/slurmd/slurmstepd/mgr.c b/src/slurmd/slurmstepd/mgr.c
index 72f2062062a..bd7a61ca35e 100644
--- a/src/slurmd/slurmstepd/mgr.c
+++ b/src/slurmd/slurmstepd/mgr.c
@@ -1252,8 +1252,13 @@ _initgroups(slurmd_job_t *job)
 	gid = job->pwd->pw_gid;
 	debug2("Uncached user/gid: %s/%ld", username, (long)gid);
 	if (rc = initgroups(username, gid)) {
-		error("Error in initgroups(%s, %ld): %m",
-		      username, (long)gid);
+		if ((errno == EPERM) && (getuid != (uid_t) 0)) {
+			debug("Error in initgroups(%s, %ld): %m",
+				username, (long)gid);
+		} else {
+			error("Error in initgroups(%s, %ld): %m",
+				username, (long)gid);
+		}
 		return -1;
 	}
 	return 0;
-- 
GitLab