From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#30298: core-updates: Failure to find the guixbuild group Date: Thu, 01 Feb 2018 10:06:07 +0100 Message-ID: <87efm5nkow.fsf@gnu.org> References: <20180131025652.GA14550@jasmine.lan> <87tvv1r6vo.fsf@gnu.org> <20180131224913.GA29149@jasmine.lan> <87k1vxr68o.fsf@gnu.org> <20180131230753.GC29149@jasmine.lan> <871si5r4kf.fsf@gnu.org> <20180131234717.GA32689@jasmine.lan> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50111) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ehApl-0006es-TU for bug-guix@gnu.org; Thu, 01 Feb 2018 04:07:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ehApi-0005v3-O8 for bug-guix@gnu.org; Thu, 01 Feb 2018 04:07:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:43902) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ehApi-0005uz-Jv for bug-guix@gnu.org; Thu, 01 Feb 2018 04:07:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ehApi-0003qd-7P for bug-guix@gnu.org; Thu, 01 Feb 2018 04:07:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <20180131234717.GA32689@jasmine.lan> (Leo Famulari's message of "Wed, 31 Jan 2018 18:47:17 -0500") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Leo Famulari Cc: 30298@debbugs.gnu.org Hello, Leo Famulari skribis: > On Thu, Feb 01, 2018 at 12:28:32AM +0100, Ludovic Court=C3=A8s wrote: >> I think you attached strace to the running guix-daemon process here. >> What I meant is that we should trace it from the beginning of its >> execution (so either run it by hand or modify the .service file to run >> =E2=80=9Cstrace -f guix-daemon =E2=80=A6=E2=80=9D.) > > Oh, right. The issue is that, starting in glibc 2.26, libnss_compat is > not built unless the glibc build is configured with > --enable-obsolete-nsl: [...] > And we can see the core-updates guix-daemon try and fail to open > libnss_compat.so: Yes, but in the trace I gave, it then goes on dlopening libnss_files, which is the NSS module to read databases like /etc/groups directly, and succeeds: --8<---------------cut here---------------start------------->8--- connect(3, {sa_family=3DAF_UNIX, sun_path=3D"/var/run/nscd/socket"}, 110) = =3D -1 ENOENT (No such file or directory) close(3) =3D 0 open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) =3D 3 fstat(3, {st_mode=3DS_IFREG|0444, st_size=3D207, ...}) =3D 0 read(3, "group:\tcompat [NOTFOUND=3Dreturn] "..., 4096) =3D 207 read(3, "", 4096) =3D 0 close(3) =3D 0 openat(AT_FDCWD, "/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.10= 5-g0890d5379c/lib/libnss_compat.so.2", O_RDONLY|O_CLOEXEC) =3D -1 ENOENT (N= o such file or directory) openat(AT_FDCWD, "/gnu/store/n6acaivs0jwiwpidjr551dhdni5kgpcr-glibc-2.26.10= 5-g0890d5379c/lib/libnss_files.so.2", O_RDONLY|O_CLOEXEC) =3D 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\"\0\0\0\0\0\0".= .., 832) =3D 832 fstat(3, {st_mode=3DS_IFREG|0555, st_size=3D56928, ...}) =3D 0 mmap(NULL, 2168632, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = =3D 0x7f420943d000 mprotect(0x7f4209448000, 2093056, PROT_NONE) =3D 0 mmap(0x7f4209647000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_= DENYWRITE, 3, 0xa000) =3D 0x7f4209647000 mmap(0x7f4209649000, 22328, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP= _ANONYMOUS, -1, 0) =3D 0x7f4209649000 close(3) =3D 0 mprotect(0x7f4209647000, 4096, PROT_READ) =3D 0 open("/etc/group", O_RDONLY|O_CLOEXEC) =3D 3 fstat(3, {st_mode=3DS_IFREG|0644, st_size=3D666, ...}) =3D 0 read(3, "root:x:0:\nwheel:x:999:ludo\nusers"..., 4096) =3D 666 --8<---------------cut here---------------end--------------->8--- The problem in your case is that /etc/nsswitch.conf has this: --8<---------------cut here---------------start------------->8--- passwd: compat group: compat shadow: compat --8<---------------cut here---------------end--------------->8--- =E2=80=A6 meaning that it only tries libnss_compat, and fails if its missin= g. If you replace these =E2=80=9Ccompat=E2=80=9D with =E2=80=9Cfiles=E2=80=9D,= I think it=E2=80=99ll work. FWIW on GuixSD I have this: --8<---------------cut here---------------start------------->8--- group: compat [NOTFOUND=3Dreturn] files hosts: files mdns_minimal [NOTFOUND=3Dreturn] dns mdns networks: files dns [!UNAVAIL=3Dreturn] passwd: compat [NOTFOUND=3Dreturn] files shadow: compat [NOTFOUND=3Dreturn] files --8<---------------cut here---------------end--------------->8--- The nsswitch.conf on GuixSD is based on the defaults defined in glibc, as noted in (gnu system nss). I=E2=80=99m not sure what can be done on our side. We already recommend starting the nscd: https://www.gnu.org/software/guix/manual/html_node/Application-Setup.html= #Name-Service-Switch-1 Thoughts? Ludo=E2=80=99.