GNU bug report logs - #43491
Fakechroot execution engine can fail to find libraries

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix; Severity: important; Reported by: Ludovic Courtès <ludovic.courtes@HIDDEN>; dated Fri, 18 Sep 2020 13:29:01 UTC; Maintainer for guix is bug-guix@HIDDEN.

Message received at 43491 <at> debbugs.gnu.org:


Received: (at 43491) by debbugs.gnu.org; 19 Sep 2020 15:45:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 19 11:45:35 2020
Received: from localhost ([127.0.0.1]:47836 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1kJf3P-0003Ib-8I
	for submit <at> debbugs.gnu.org; Sat, 19 Sep 2020 11:45:35 -0400
Received: from eggs.gnu.org ([209.51.188.92]:41392)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1kJf3M-0003IN-Ng
 for 43491 <at> debbugs.gnu.org; Sat, 19 Sep 2020 11:45:33 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:46676)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>) id 1kJf3H-0005Ql-De
 for 43491 <at> debbugs.gnu.org; Sat, 19 Sep 2020 11:45:27 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=48230 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>) id 1kJf36-0003mi-Ew
 for 43491 <at> debbugs.gnu.org; Sat, 19 Sep 2020 11:45:23 -0400
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: 43491 <at> debbugs.gnu.org
Subject: Re: bug#43491: Fakechroot execution engine can fail to find libraries
References: <87mu1nw6x9.fsf@HIDDEN> <87d02jvzo5.fsf@HIDDEN>
Date: Sat, 19 Sep 2020 17:45:13 +0200
In-Reply-To: <87d02jvzo5.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?=
 =?utf-8?Q?s?= message of "Fri, 18 Sep 2020 18:04:58 +0200")
Message-ID: <87k0wprcs6.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
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: 43491
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Ludovic Court=C3=A8s <ludovic.courtes@HIDDEN> skribis:

> Indeed, we can see =E2=80=98stat=E2=80=99 calls passed raw /gnu/store fil=
e names from
> RUNPATH entries (instead of /tmp/fakechroot-test/gnu/store), suggesting
> that =E2=80=98la_objsearch=E2=80=99 didn=E2=80=99t have a chance to rewri=
te them:

This is probably an ld.so bug:

  https://sourceware.org/bugzilla/show_bug.cgi?id=3D26634

Ludo=E2=80=99.




Information forwarded to bug-guix@HIDDEN:
bug#43491; Package guix. Full text available.

Message received at 43491 <at> debbugs.gnu.org:


Received: (at 43491) by debbugs.gnu.org; 18 Sep 2020 16:05:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 18 12:05:08 2020
Received: from localhost ([127.0.0.1]:44264 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1kJIsl-00087v-IA
	for submit <at> debbugs.gnu.org; Fri, 18 Sep 2020 12:05:08 -0400
Received: from mail3-relais-sop.national.inria.fr ([192.134.164.104]:58686)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludovic.courtes@HIDDEN>) id 1kJIsj-00087K-M6
 for 43491 <at> debbugs.gnu.org; Fri, 18 Sep 2020 12:05:06 -0400
X-IronPort-AV: E=Sophos;i="5.77,274,1596492000"; d="scan'208";a="359435447"
Received: from 91-160-117-201.subs.proxad.net (HELO ribbon) ([91.160.117.201])
 by mail3-relais-sop.national.inria.fr with
 ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Sep 2020 18:04:58 +0200
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludovic.courtes@HIDDEN>
To: 43491 <at> debbugs.gnu.org
Subject: Re: bug#43491: Fakechroot execution engine can fail to find libraries
References: <87mu1nw6x9.fsf@HIDDEN>
Date: Fri, 18 Sep 2020 18:04:58 +0200
In-Reply-To: <87mu1nw6x9.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22?=
 =?utf-8?Q?'s?= message of "Fri, 18 Sep 2020 15:28:18 +0200")
Message-ID: <87d02jvzo5.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -5.0 (-----)
X-Debbugs-Envelope-To: 43491
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -6.0 (------)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Ludovic Court=C3=A8s <ludovic.courtes@HIDDEN> skribis:

> $ guix describe
> Generacio 159	Sep 18 2020 08:55:27	(nuna)
>   guix 98b89f4
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 98b89f432103b66efacee0bcba41a94148b8e870
> $ mkdir /tmp/fakechroot-test
> $ (cd /tmp/fakechroot-test; tar xf $(guix pack -RR openmpi -S /bin=3Dbin =
-v0))
> $ unshare -m -U -r -f sh -c 'mount -t tmpfs none /gnu; echo /gnu/*; GUIX_=
EXECUTION_ENGINE=3Dfakechroot /tmp/fakechroot-test/bin/orterun'
> /gnu/*
> /tmp/fakechroot-test/gnu/store/rm1d9z3z3iwsv779vqlg7q5z7pdk5k12-openmpi-4=
.0.5/bin//orterun: error while loading shared libraries: libevent_core-2.1.=
so.7: cannot open shared object file: No such file or directory

If we look at the LD_DEBUG=3Dall output, we see that
/gnu/store/=E2=80=A6libevent-2.11.1/lib has disappeared from the search pat=
h at
the point where ld.so looks for libevent_core.so:

--8<---------------cut here---------------start------------->8---
     15220:	file=3Dlibevent_core-2.1.so.7 [0];  needed by /tmp/openmpi/gnu/=
store/rm1d9z3z3iwsv779vqlg7q5z7pdk5k12-openmpi-4.0.5/bin//orterun [0]
     15220:	find library=3Dlibevent_core-2.1.so.7 [0]; searching
     15220:	 search path=3D/tmp/openmpi/gnu/store/fa6wj5bxkj5ll1d7292a70knm=
yl7a0cr-glibc-2.31/lib:/tmp/openmpi/gnu/store/01b4w3m6mp55y531kyi1g8shh722k=
wqm-gcc-7.5.0-lib/lib:/tmp/openmpi/gnu/store:/tmp/openmpi/gnu/store/01b4w3m=
6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.=
5.0/../../..		(LD_LIBRARY_PATH)
     15220:	  trying file=3D/tmp/openmpi/gnu/store/fa6wj5bxkj5ll1d7292a70kn=
myl7a0cr-glibc-2.31/lib/libevent_core-2.1.so.7
     15220:	  trying file=3D/tmp/openmpi/gnu/store/01b4w3m6mp55y531kyi1g8sh=
h722kwqm-gcc-7.5.0-lib/lib/libevent_core-2.1.so.7
     15220:	  trying file=3D/tmp/openmpi/gnu/store/libevent_core-2.1.so.7
     15220:	  trying file=3D/tmp/openmpi/gnu/store/01b4w3m6mp55y531kyi1g8sh=
h722kwqm-gcc-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../libe=
vent_core-2.1.so.7
     15220:	 search path=3D/gnu/store/rm1d9z3z3iwsv779vqlg7q5z7pdk5k12-open=
mpi-4.0.5/lib:/gnu/store/xk22b03jb0c0b6vkadqbkr9d4556rwxh-hwloc-2.2.0-lib/l=
ib:/gnu/store/i1smdd4r44c5wwi03g40dvc6wfnqgdwq-libpciaccess-0.16/lib		(RUNP=
ATH from file /tmp/openmpi/gnu/store/rm1d9z3z3iwsv779vqlg7q5z7pdk5k12-openm=
pi-4.0.5/bin//orterun)
     15220:	  trying file=3D/gnu/store/rm1d9z3z3iwsv779vqlg7q5z7pdk5k12-ope=
nmpi-4.0.5/lib/libevent_core-2.1.so.7
     15220:	  trying file=3D/gnu/store/xk22b03jb0c0b6vkadqbkr9d4556rwxh-hwl=
oc-2.2.0-lib/lib/libevent_core-2.1.so.7
     15220:	  trying file=3D/gnu/store/i1smdd4r44c5wwi03g40dvc6wfnqgdwq-lib=
pciaccess-0.16/lib/libevent_core-2.1.so.7
     15220:	 search path=3D		(system search path)
     15220:	 search path=3D/gnu/store/rykm237xkmq7rl1p0nwass01p090p88x-zlib=
-1.2.11/lib:/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/g=
cc/x86_64-unknown-linux-gnu/7.5.0/../../../tls/haswell/x86_64:/gnu/store/01=
b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/gcc/x86_64-unknown-linux-g=
nu/7.5.0/../../../tls/haswell:/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-g=
cc-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../tls/x86_64:/gn=
u/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/gcc/x86_64-unkno=
wn-linux-gnu/7.5.0/../../../tls:/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm=
-gcc-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../haswell/x86_=
64:/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/gcc/x86_64=
-unknown-linux-gnu/7.5.0/../../../haswell:/gnu/store/01b4w3m6mp55y531kyi1g8=
shh722kwqm-gcc-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../x8=
6_64:/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/gcc/x86_=
64-unknown-linux-gnu/7.5.0/../../..		(RUNPATH from file /tmp/openmpi/gnu/st=
ore/rm1d9z3z3iwsv779vqlg7q5z7pdk5k12-openmpi-4.0.5/bin//orterun)
     15220:	  trying file=3D/gnu/store/rykm237xkmq7rl1p0nwass01p090p88x-zli=
b-1.2.11/lib/libevent_core-2.1.so.7
     15220:	  trying file=3D/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc=
-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../tls/haswell/x86_=
64/libevent_core-2.1.so.7
     15220:	  trying file=3D/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc=
-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../tls/haswell/libe=
vent_core-2.1.so.7
     15220:	  trying file=3D/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc=
-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../tls/x86_64/libev=
ent_core-2.1.so.7
     15220:	  trying file=3D/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc=
-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../tls/libevent_cor=
e-2.1.so.7
     15220:	  trying file=3D/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc=
-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../haswell/x86_64/l=
ibevent_core-2.1.so.7
     15220:	  trying file=3D/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc=
-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../haswell/libevent=
_core-2.1.so.7
     15220:	  trying file=3D/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc=
-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../x86_64/libevent_=
core-2.1.so.7
     15220:	  trying file=3D/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc=
-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../libevent_core-2.=
1.so.7
     15220:	 search path=3D		(system search path)
--8<---------------cut here---------------end--------------->8---

IIUC, the only way a search path entry can =E2=80=9Cdisappear=E2=80=9D is i=
f ld.so marks
it as =E2=80=9Cnonexisting=E2=80=9D, as per dl-load.c:

--8<---------------cut here---------------start------------->8---
	  if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS))
	    _dl_debug_printf ("  trying file=3D%s\n", buf);

	  fd =3D open_verify (buf, -1, fbp, loader, whatcode, mode,
			    found_other_class, false);
	  if (this_dir->status[cnt] =3D=3D unknown)
	    {
	      if (fd !=3D -1)
		this_dir->status[cnt] =3D existing;
	      /* Do not update the directory information when loading
		 auditing code.  We must try to disturb the program as
		 little as possible.  */
	      else if (loader =3D=3D NULL
		       || GL(dl_ns)[loader->l_ns]._ns_loaded->l_auditing =3D=3D 0)
		{
		  /* We failed to open machine dependent library.  Let's
		     test whether there is any directory at all.  */
		  struct stat64 st;

		  buf[buflen - namelen - 1] =3D '\0';

		  if (__xstat64 (_STAT_VER, buf, &st) !=3D 0
		      || ! S_ISDIR (st.st_mode))
		    /* The directory does not exist or it is no directory.  */
		    this_dir->status[cnt] =3D nonexisting;
		  else
		    this_dir->status[cnt] =3D existing;
		}
	    }
--8<---------------cut here---------------end--------------->8---

Indeed, we can see =E2=80=98stat=E2=80=99 calls passed raw /gnu/store file =
names from
RUNPATH entries (instead of /tmp/fakechroot-test/gnu/store), suggesting
that =E2=80=98la_objsearch=E2=80=99 didn=E2=80=99t have a chance to rewrite=
 them:

--8<---------------cut here---------------start------------->8---
18952 openat(AT_FDCWD, "/tmp/fakechroot-test/gnu/store/01b4w3m6mp55y531kyi1=
g8shh722kwqm-gcc-7.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/7.5.0/../../../=
libz.so.1", O_RDONLY|O_CLOEXEC) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne=
 ekzistas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/rm1d9z3z3iwsv779vql=
g7q5z7pdk5k12-openmpi-4.0.5/lib/libz.so.1", O_RDONLY|O_CLOEXEC) =3D -1 ENOE=
NT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/xk22b03jb0c0b6vkadq=
bkr9d4556rwxh-hwloc-2.2.0-lib/lib/libz.so.1", O_RDONLY|O_CLOEXEC) =3D -1 EN=
OENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/i1smdd4r44c5wwi03g4=
0dvc6wfnqgdwq-libpciaccess-0.16/lib/libz.so.1", O_RDONLY|O_CLOEXEC) =3D -1 =
ENOENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/c7wscymmk379v16invi=
8m68f6v5c8gsv-libevent-2.1.11/lib/tls/haswell/x86_64/libz.so.1", O_RDONLY|O=
_CLOEXEC) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 stat("/gnu/store/c7wscymmk379v16invi8m68f6v5c8gsv-libevent-2.1.11/lib=
/tls/haswell/x86_64", 0x7ffc99e48700) =3D -1 ENOENT (Dosiero a=C5=AD dosier=
ujo ne ekzistas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/c7wscymmk379v16invi=
8m68f6v5c8gsv-libevent-2.1.11/lib/tls/haswell/libz.so.1", O_RDONLY|O_CLOEXE=
C) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 stat("/gnu/store/c7wscymmk379v16invi8m68f6v5c8gsv-libevent-2.1.11/lib=
/tls/haswell", 0x7ffc99e48700) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne =
ekzistas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/c7wscymmk379v16invi=
8m68f6v5c8gsv-libevent-2.1.11/lib/tls/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC=
) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 stat("/gnu/store/c7wscymmk379v16invi8m68f6v5c8gsv-libevent-2.1.11/lib=
/tls/x86_64", 0x7ffc99e48700) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne e=
kzistas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/c7wscymmk379v16invi=
8m68f6v5c8gsv-libevent-2.1.11/lib/tls/libz.so.1", O_RDONLY|O_CLOEXEC) =3D -=
1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 stat("/gnu/store/c7wscymmk379v16invi8m68f6v5c8gsv-libevent-2.1.11/lib=
/tls", 0x7ffc99e48700) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/c7wscymmk379v16invi=
8m68f6v5c8gsv-libevent-2.1.11/lib/haswell/x86_64/libz.so.1", O_RDONLY|O_CLO=
EXEC) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 stat("/gnu/store/c7wscymmk379v16invi8m68f6v5c8gsv-libevent-2.1.11/lib=
/haswell/x86_64", 0x7ffc99e48700) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo =
ne ekzistas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/c7wscymmk379v16invi=
8m68f6v5c8gsv-libevent-2.1.11/lib/haswell/libz.so.1", O_RDONLY|O_CLOEXEC) =
=3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 stat("/gnu/store/c7wscymmk379v16invi8m68f6v5c8gsv-libevent-2.1.11/lib=
/haswell", 0x7ffc99e48700) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzi=
stas)
18952 openat(AT_FDCWD, "/tmp/guix-exec-3Y7bac/gnu/store/c7wscymmk379v16invi=
8m68f6v5c8gsv-libevent-2.1.11/lib/x86_64/libz.so.1", O_RDONLY|O_CLOEXEC) =
=3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzistas)
18952 stat("/gnu/store/c7wscymmk379v16invi8m68f6v5c8gsv-libevent-2.1.11/lib=
/x86_64", 0x7ffc99e48700) =3D -1 ENOENT (Dosiero a=C5=AD dosierujo ne ekzis=
tas)
--8<---------------cut here---------------end--------------->8---

My guess is that after these =E2=80=98stat=E2=80=99 calls, the libevent dir=
ectory is
marked as non-existing and is skipped from then on, hence the failure.

Does that make sense?

The patch below fixes the issue for this particular example by simply
passing the whole RUNPATH of the wrapped executable as =E2=80=98--library-p=
ath=E2=80=99,
as was the case in v1 of the patch set=C2=B9.  (This assumes that the RUNPA=
TH
of pack-audit.so is a subset of that of the program, which is usually
the case.)

Thanks,
Ludo=E2=80=99.

=C2=B9 https://issues.guix.gnu.org/41189#3


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline

diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 379e6a3ac6..6355b99252 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -820,8 +820,7 @@ last resort for relocation."
                             (string-append "-DLOADER_AUDIT_RUNPATH={ "
                                            (string-join
                                             (map object->string
-                                                 (runpath
-                                                  #$(audit-module)))
+                                                 (runpath program))
                                             ", " 'suffix)
                                            "NULL }")
                             (if gconv

--=-=-=--




Information forwarded to bug-guix@HIDDEN:
bug#43491; Package guix. Full text available.
Severity set to 'important' from 'normal' Request was from Ludovic Courtès <ludo@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 18 Sep 2020 13:28:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 18 09:28:31 2020
Received: from localhost ([127.0.0.1]:41309 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1kJGRC-0000n9-HZ
	for submit <at> debbugs.gnu.org; Fri, 18 Sep 2020 09:28:30 -0400
Received: from lists.gnu.org ([209.51.188.17]:47170)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludovic.courtes@HIDDEN>) id 1kJGRA-0000mz-GE
 for submit <at> debbugs.gnu.org; Fri, 18 Sep 2020 09:28:28 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:46106)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludovic.courtes@HIDDEN>)
 id 1kJGR9-00075o-Oi
 for bug-guix@HIDDEN; Fri, 18 Sep 2020 09:28:28 -0400
Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:49677)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludovic.courtes@HIDDEN>)
 id 1kJGR4-0002NM-7i
 for bug-guix@HIDDEN; Fri, 18 Sep 2020 09:28:27 -0400
X-IronPort-AV: E=Sophos;i="5.77,274,1596492000"; d="scan'208";a="468443874"
Received: from 91-160-117-201.subs.proxad.net (HELO ribbon) ([91.160.117.201])
 by mail2-relais-roc.national.inria.fr with
 ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Sep 2020 15:28:18 +0200
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludovic.courtes@HIDDEN>
To: <bug-guix@HIDDEN>
Subject: Fakechroot execution engine can fail to find libraries
X-URL: http://www.fdn.fr/~lcourtes/
X-Revolutionary-Date: Jour du Travail de =?utf-8?Q?l'Ann=C3=A9e?= 228 de la
 =?utf-8?Q?R=C3=A9volution?=
X-PGP-Key-ID: 0x090B11993D9AEBB5
X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc
X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
X-OS: x86_64-pc-linux-gnu
Date: Fri, 18 Sep 2020 15:28:18 +0200
Message-ID: <87mu1nw6x9.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=192.134.164.83;
 envelope-from=ludovic.courtes@HIDDEN;
 helo=mail2-relais-roc.national.inria.fr
X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/18 08:00:04
X-ACL-Warn: Detected OS   = ???
X-Spam_score_int: -68
X-Spam_score: -6.9
X-Spam_bar: ------
X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5,
 RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

Using the =E2=80=98fakechroot=E2=80=99 execution engine of =E2=80=98guix pa=
ck -RR=E2=80=99, I found a
case where an executable=E2=80=99s NEEDED library is not found.

--8<---------------cut here---------------start------------->8---
$ guix describe
Generacio 159	Sep 18 2020 08:55:27	(nuna)
  guix 98b89f4
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 98b89f432103b66efacee0bcba41a94148b8e870
$ mkdir /tmp/fakechroot-test
$ (cd /tmp/fakechroot-test; tar xf $(guix pack -RR openmpi -S /bin=3Dbin -v=
0))
$ unshare -m -U -r -f sh -c 'mount -t tmpfs none /gnu; echo /gnu/*; GUIX_EX=
ECUTION_ENGINE=3Dfakechroot /tmp/fakechroot-test/bin/orterun'
/gnu/*
/tmp/fakechroot-test/gnu/store/rm1d9z3z3iwsv779vqlg7q5z7pdk5k12-openmpi-4.0=
.5/bin//orterun: error while loading shared libraries: libevent_core-2.1.so=
.7: cannot open shared object file: No such file or directory
--8<---------------cut here---------------end--------------->8---

That library is in the RUNPATH of the original executable though:

--8<---------------cut here---------------start------------->8---
$ objdump -x $(guix build openmpi)/bin/orterun | grep PATH
objdump: Advertiment: '/gnu/store/3ign6b3i5ambjgqqiyman4mqw0wljlvl-openmpi-=
4.0.5-debug' =C3=A9s un directori
  RUNPATH              /gnu/store/rm1d9z3z3iwsv779vqlg7q5z7pdk5k12-openmpi-=
4.0.5/lib:/gnu/store/xk22b03jb0c0b6vkadqbkr9d4556rwxh-hwloc-2.2.0-lib/lib:/=
gnu/store/i1smdd4r44c5wwi03g40dvc6wfnqgdwq-libpciaccess-0.16/lib:/gnu/store=
/c7wscymmk379v16invi8m68f6v5c8gsv-libevent-2.1.11/lib:/gnu/store/fa6wj5bxkj=
5ll1d7292a70knmyl7a0cr-glibc-2.31/lib:/gnu/store/01b4w3m6mp55y531kyi1g8shh7=
22kwqm-gcc-7.5.0-lib/lib:/gnu/store/rykm237xkmq7rl1p0nwass01p090p88x-zlib-1=
.2.11/lib:/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/gcc=
/x86_64-unknown-linux-gnu/7.5.0/../../..
$ objdump -x $(guix build openmpi)/bin/orterun | grep NEED.*libevent
objdump: Advertiment: '/gnu/store/3ign6b3i5ambjgqqiyman4mqw0wljlvl-openmpi-=
4.0.5-debug' =C3=A9s un directori
  NEEDED               libevent_core-2.1.so.7
  NEEDED               libevent_pthreads-2.1.so.7
--8<---------------cut here---------------end--------------->8---

Ludo=E2=80=99.




Acknowledgement sent to Ludovic Courtès <ludovic.courtes@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-guix@HIDDEN. Full text available.
Report forwarded to bug-guix@HIDDEN:
bug#43491; Package guix. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 19 Sep 2020 16:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.