From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33864) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dsyhT-0000Rh-K1 for guix-patches@gnu.org; Fri, 15 Sep 2017 18:03:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dsyhS-0007Xv-Hu for guix-patches@gnu.org; Fri, 15 Sep 2017 18:03:03 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:34499) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dsyhS-0007Xl-Eb for guix-patches@gnu.org; Fri, 15 Sep 2017 18:03:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dsyhS-0006bH-5j for guix-patches@gnu.org; Fri, 15 Sep 2017 18:03:02 -0400 Subject: [bug#28399] [PATCH 1/2] services: mysql: Fix missing modules on activation. Resent-Message-ID: From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <20170909153905.087c013f@cbaines.net> <20170909145343.14851-1-mail@cbaines.net> <87shftd67d.fsf@gnu.org> <20170912194825.70eb4436@cbaines.net> Date: Sat, 16 Sep 2017 00:02:08 +0200 In-Reply-To: <20170912194825.70eb4436@cbaines.net> (Christopher Baines's message of "Tue, 12 Sep 2017 19:48:25 +0100") Message-ID: <87377nlixr.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Christopher Baines Cc: 28399@debbugs.gnu.org Heya, Christopher Baines skribis: > On Mon, 11 Sep 2017 09:50:46 +0200 > ludo@gnu.org (Ludovic Court=C3=A8s) wrote: > >> Hi Chris, >>=20 >> Christopher Baines skribis: >>=20 >> > Some systems using the MySQL service would fail to boot, giving the >> > error: >> > >> > ERROR: no code for module (ice-9 popen) [...] >> The =E2=80=98use-modules=E2=80=99 form should be enough. Does the test = you sent >> reproduce the original problem? > > It does for me. If you just revert the commit adding in the > with-imported-modules bit, running the mysql system test then fails: > > ERROR: In procedure scm-error: > ERROR: no code for module (ice-9 popen) The activation script is run by the =E2=80=9Cboot=E2=80=9D script before it= spawns shepherd. The boot script runs over the initrd=E2=80=99s Guile, which is statically linked. However, (ice-9 popen) starts by dynamically loading libguile and calling a function therein: (eval-when (expand load eval) (load-extension (string-append "libguile-" (effective-version)) "scm_init_popen")) Dynamic loading is not supposed to work in the statically-linked Guile, but apparently it does work sometimes: --8<---------------cut here---------------start------------->8--- $ sudo chroot /gnu/store/3ir873f4dsdl3aaj48iqykn6437ilk0p-guile-static-stri= pped-2.2.2 /bin/guile=20=20 guile: warning: failed to install locale GC Warning: pthread_getattr_np or pthread_attr_getstack failed for main thr= ead GC Warning: Couldn't read /proc/stat warning: failed to install locale: Invalid argument GNU Guile 2.2.2 Copyright (C) 1995-2017 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> ,use(ice-9 popen) scheme@(guile-user)> open-pipe* $1 =3D # --8<---------------cut here---------------end--------------->8--- Perhaps it=E2=80=99s due to the libtool/ltdl preload feature. What=E2=80=99s more puzzling though, is that it works in some cases (like a= bove) and not in others (in the test VM). Needs more thought=E2=80=A6 Ludo=E2=80=99.