guix-mirrors/gnu/packages/patches/slurm-23-salloc-fallback-shell.patch
Nicolas Graves 917bb3ab08
gnu: slurm-23.02: Update to slurm-23.11.
* gnu/packages/parallel.scm (slurm-23.02, slurm-minimal-23.02):
Delete variables, replace respectively by (slurm-23.11,
slurm-minimal-23.11).
* gnu/packages/patches/slurm-23-salloc-fallback-shell.patch: Refresh
patch.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-14 18:13:08 +02:00

26 lines
950 B
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Have 'salloc' use $SHELL or /bin/sh as the fallback shell.
This is useful in situations where glibcs Name Service Switch (NSS) is
dysfunctional (with getpwuid returning NULL), which can happen when
/etc/nsswitch.conf specifies plugins that fail to be loaded in user code, for
instance because user code is linked against an incompatible libc.
Similar patch submitted upstream: https://bugs.schedmd.com/show_bug.cgi?id=19896
diff --git a/src/salloc/opt.c b/src/salloc/opt.c
index f535600..848f099 100644
--- a/src/salloc/opt.c
+++ b/src/salloc/opt.c
@@ -333,8 +333,10 @@ static char *_get_shell(void)
if (uid == SLURM_AUTH_NOBODY)
uid = getuid();
- if (!(shell = uid_to_shell(uid)))
- fatal("no user information for user %u", uid);
+ if (!(shell = uid_to_shell(uid))) {
+ shell = getenv("SHELL") ?: "/bin/sh";
+ warning("no user information for user %u, using '%s' as the shell", opt.uid, shell);
+ }
return shell;
}