From unknown Thu Sep 11 18:36:41 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#70983 <70983@debbugs.gnu.org> To: bug#70983 <70983@debbugs.gnu.org> Subject: Status: [PATCH] gnu: slurm: Add patch for a useful fallback shell for =?UTF-8?Q?=E2=80=98salloc=E2=80=99.?= Reply-To: bug#70983 <70983@debbugs.gnu.org> Date: Fri, 12 Sep 2025 01:36:41 +0000 retitle 70983 [PATCH] gnu: slurm: Add patch for a useful fallback shell for= =E2=80=98salloc=E2=80=99. reassign 70983 guix-patches submitter 70983 Ludovic Court=C3=A8s severity 70983 normal tag 70983 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Thu May 16 10:03:20 2024 Received: (at submit) by debbugs.gnu.org; 16 May 2024 14:03:20 +0000 Received: from localhost ([127.0.0.1]:48922 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s7bhX-00070x-Um for submit@debbugs.gnu.org; Thu, 16 May 2024 10:03:20 -0400 Received: from lists.gnu.org ([209.51.188.17]:52562) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1s7bhT-00070r-6Z for submit@debbugs.gnu.org; Thu, 16 May 2024 10:03:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s7bhO-0006DS-SP for guix-patches@gnu.org; Thu, 16 May 2024 10:03:11 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s7bhN-00063A-HJ; Thu, 16 May 2024 10:03:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=I45dvcnLlAgfmQqA97rapoEW6OuJrvQg6a6pn2wholE=; b=dj7QHEMMNIXRyV hEMyG6yFvTQmst+pvPYV4wOhVBzb0UwRyKlYogCmYPMI+8HfuDO3UxWuadRDkv69PCNms9bI6jSzk LpRRW6kR7rYQqCyxu6r3i/GXwfzcAXXL9z7msc64jVcDkhAdt8J9MefN2si/RcqiCW3mvI/WRUO8H hhkf0KrN5ZpRa+8kY43DhJmqLi2kJnNmCk9mmJKPqnvEmx4v4PJfm8BZz5zPzZ2tLrjY4DN7Xicyj RhHQY4sM2q+56of91CASrxQpiCGs9GBGSvLtPwuf7rXYKE+BuVtzfBfaKRtvznjYClbtvlkEabuKP C6TfVZ/LAeuJePCVMo8g==; From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= To: guix-patches@gnu.org Subject: [PATCH] =?UTF-8?q?gnu:=20slurm:=20Add=20patch=20for=20a=20useful?= =?UTF-8?q?=20fallback=20shell=20for=20=E2=80=98salloc=E2=80=99.?= Date: Thu, 16 May 2024 16:02:50 +0200 Message-ID: <987a8b33c90625d264e3c87633d0362d47de7337.1715867979.git.ludo@gnu.org> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) From: Ludovic Courtès * gnu/packages/patches/slurm-23-salloc-fallback-shell.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/parallel.scm (slurm): Use it. (slurm-22.05, slurm-21.08, slurm-20.11, slurm-20.02) (slurm-19.05, slurm-18.08): Drop it. Change-Id: I1498e8d21d631c988edf75a8bcc8d2ae5f244b7a --- gnu/local.mk | 1 + gnu/packages/parallel.scm | 10 ++++- .../slurm-23-salloc-fallback-shell.patch | 39 +++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/slurm-23-salloc-fallback-shell.patch Hello! This change is useful for those of us using SLURM on foreign distros, which is probably 99% of HPC supercomputers. On those machines, sometimes nscd is running but has ‘passwd’ database caching disabled; sometimes it’s just not running. In both cases, getpwduid(3) would return NULL, and without this patch, ‘salloc’ would fall back to (typically) /sbin/nologin as the shell. This patch provides a more useful fallback. Note that the patch targets slurm@23 only because (1) that’s what I need, and (2) it doesn’t apply to other versions, and I thought we could port it there if/when there is a need. Thoughts? Ludo’. diff --git a/gnu/local.mk b/gnu/local.mk index 439fe587b02..5264134c390 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2067,6 +2067,7 @@ dist_patch_DATA = \ %D%/packages/patches/slim-config.patch \ %D%/packages/patches/slim-login.patch \ %D%/packages/patches/slim-display.patch \ + %D%/packages/patches/slurm-23-salloc-fallback-shell.patch \ %D%/packages/patches/stex-copy-from-immutable-store.patch \ %D%/packages/patches/syslinux-gcc10.patch \ %D%/packages/patches/syslinux-strip-gnu-property.patch \ diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 11199594f1e..b4ecfefddcf 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2017, 2018 Rutger Helling ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice ;;; Copyright © 2018 Clément Lassieur -;;; Copyright © 2019-2023 Ludovic Courtès +;;; Copyright © 2019-2024 Ludovic Courtès ;;; Copyright © 2020 Roel Janssen ;;; Copyright © 2021 Stefan Reichör ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> @@ -195,6 +195,8 @@ (define-public slurm (sha256 (base32 "08rz3r1rlnb3pmfdnbh542gm44ja0fdy8rkj4vm4lclc48cvqp2a")) + (patches + (search-patches "slurm-23-salloc-fallback-shell.patch")) (modules '((guix build utils))) (snippet '(begin @@ -292,6 +294,7 @@ (define-public slurm-22.05 (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) + (patches '()) ;drop 'salloc' patch (sha256 (base32 "0f3hhlki8g7slllsnyj1qikbsvr62i0hig85lcdcfnmsagzlhbyi")))))) @@ -306,6 +309,7 @@ (define-public slurm-21.08 (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) + (patches '()) ;drop 'salloc' patch (sha256 (base32 "1sjln54idc9rhg8f2nvm38sgs6fncncyzslas8ixy65pqz2hphbf")))))) @@ -320,6 +324,7 @@ (define-public slurm-20.11 (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) + (patches '()) ;drop 'salloc' patch (sha256 (base32 "0xq2d6dm285y541dyg1h66z7svsisrq8c81ag0f601xz1cn3mq9m")))))) @@ -334,6 +339,7 @@ (define-public slurm-20.02 (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) + (patches '()) ;drop 'salloc' patch (sha256 (base32 "0qj4blfymrd2ry2qmb58l3jbr4jwygc3adcfw7my27rippcijlyc")))) @@ -353,6 +359,7 @@ (define-public slurm-19.05 (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) + (patches '()) ;drop 'salloc' patch (sha256 (base32 "10c9j4a9a6d4ibpf75006mn03p8xgpaprc247x2idakysjf2fw43")))))) @@ -368,6 +375,7 @@ (define-public slurm-18.08 (uri (string-append "https://download.schedmd.com/slurm/slurm-" version ".tar.bz2")) + (patches '()) ;drop 'salloc' patch (sha256 (base32 "1bgrpz75m7l4xhirsd0fvnkzlkrl8v2qpmjcz60barc5qm2kn457")))))) diff --git a/gnu/packages/patches/slurm-23-salloc-fallback-shell.patch b/gnu/packages/patches/slurm-23-salloc-fallback-shell.patch new file mode 100644 index 00000000000..53605bf3aed --- /dev/null +++ b/gnu/packages/patches/slurm-23-salloc-fallback-shell.patch @@ -0,0 +1,39 @@ +Have 'salloc' use $SHELL or /bin/sh as the fallback shell. + +This is useful in situations where glibc’s 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 ffff7c8..74563ad 100644 +--- a/src/salloc/opt.c ++++ b/src/salloc/opt.c +@@ -329,6 +329,7 @@ static void _opt_args(int argc, char **argv, int het_job_offset) + * NOTE: This function is NOT reentrant (see getpwuid_r if needed) */ + static char *_get_shell(void) + { ++ char *shell; + struct passwd *pw_ent_ptr; + + if (opt.uid == SLURM_AUTH_NOBODY) +@@ -336,11 +337,13 @@ static char *_get_shell(void) + else + pw_ent_ptr = getpwuid(opt.uid); + +- if (!pw_ent_ptr) { +- pw_ent_ptr = getpwnam("nobody"); +- warning("no user information for user %u", opt.uid); ++ if (pw_ent_ptr) { ++ shell = pw_ent_ptr->pw_shell; ++ } else { ++ shell = getenv("SHELL") ?: "/bin/sh"; ++ warning("no user information for user %u, using '%s' as the shell", opt.uid, shell); + } +- return pw_ent_ptr->pw_shell; ++ return shell; + } + + static void _salloc_default_command(int *argcp, char **argvp[]) base-commit: 58be9a79e2862d5fa9842d73f498ce2e5442b9ce -- 2.41.0 From debbugs-submit-bounces@debbugs.gnu.org Fri May 31 07:59:25 2024 Received: (at 70983-done) by debbugs.gnu.org; 31 May 2024 11:59:25 +0000 Received: from localhost ([127.0.0.1]:53449 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sD0uq-0004Zl-Tr for submit@debbugs.gnu.org; Fri, 31 May 2024 07:59:25 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50418) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sD0un-0004ZN-KE for 70983-done@debbugs.gnu.org; Fri, 31 May 2024 07:59:22 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sD0uX-0002Cg-7R for 70983-done@debbugs.gnu.org; Fri, 31 May 2024 07:59:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=kPgz1yTOqPDpp/ohPDtTTZaF7NEPWxpwkHpDWxI/Lx0=; b=fTgcKie9b4qSRRnOfI3U x4FdEPXglJXJ9XEHska2J9AEkwZM8GKB1guxk5ehNUNGZ7oTcz8jsb1rV/8jmiuMPoQK1JG44FvMu hrNcRh+VvGONZPmGljMyBc01JrGkxqEZBlHq/aLZVVN9N5zsk0kI69Zd+/06/eVcqxNFyCnc3Hs9T UiYRaCT1+jME+PEEf2BxzenmfIsmGJ6rJvQfC9nB2ccYm9VEFVBzVBKAY6DWq/bYUfQplGtsNCNyD yDJ7/EiTmkq+Av8qEognbsY1EGh0tMMrFcXgRi0fsAl/WgSiZyCS0yu7B75KVbxJP9XDkwdSEi0g2 eCHtPQcymnBkyg==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: 70983-done@debbugs.gnu.org Subject: Re: [bug#70983] [PATCH] gnu: slurm: Add patch for a useful fallback shell for =?utf-8?B?4oCYc2FsbG9j4oCZLg==?= In-Reply-To: <987a8b33c90625d264e3c87633d0362d47de7337.1715867979.git.ludo@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22's?= message of "Thu, 16 May 2024 16:02:50 +0200") References: <987a8b33c90625d264e3c87633d0362d47de7337.1715867979.git.ludo@gnu.org> Date: Fri, 31 May 2024 13:59:01 +0200 Message-ID: <87r0diry4a.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 70983-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, Ludovic Court=C3=A8s skribis: > From: Ludovic Court=C3=A8s > > * gnu/packages/patches/slurm-23-salloc-fallback-shell.patch: New file. > * gnu/local.mk (dist_patch_DATA): Add it. > * gnu/packages/parallel.scm (slurm): Use it. > (slurm-22.05, slurm-21.08, slurm-20.11, slurm-20.02) > (slurm-19.05, slurm-18.08): Drop it. > > Change-Id: I1498e8d21d631c988edf75a8bcc8d2ae5f244b7a Pushed as 422ffb690ee0169b83ad3564d628f8cc054b5ff1. Ludo=E2=80=99. From unknown Thu Sep 11 18:36:41 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 29 Jun 2024 11:24:16 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator