GNU bug report logs - #28399
[PATCH]: Fix mysql activation, and add a basic test.

Previous Next

Package: guix-patches;

Reported by: Christopher Baines <mail <at> cbaines.net>

Date: Sat, 9 Sep 2017 14:40:01 UTC

Severity: normal

Tags: patch

Done: Christopher Baines <mail <at> cbaines.net>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 28399 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Christopher Baines <mail <at> cbaines.net>
Cc: 28399 <at> debbugs.gnu.org
Subject: Re: [bug#28399] [PATCH 1/2] services: mysql: Fix missing modules on
 activation.
Date: Sat, 16 Sep 2017 00:02:08 +0200
Heya,

Christopher Baines <mail <at> cbaines.net> skribis:

> On Mon, 11 Sep 2017 09:50:46 +0200
> ludo <at> gnu.org (Ludovic Courtès) wrote:
>
>> Hi Chris,
>> 
>> Christopher Baines <mail <at> cbaines.net> skribis:
>> 
>> > Some systems using the MySQL service would fail to boot, giving the
>> > error:
>> >
>> >   ERROR: no code for module (ice-9 popen)

[...]

>> The ‘use-modules’ 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 “boot” script before it spawns
shepherd.  The boot script runs over the initrd’s 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-stripped-2.2.2 /bin/guile  
guile: warning: failed to install locale
GC Warning: pthread_getattr_np or pthread_attr_getstack failed for main thread
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 = #<procedure open-pipe* (mode command . args)>
--8<---------------cut here---------------end--------------->8---

Perhaps it’s due to the libtool/ltdl preload feature.

What’s more puzzling though, is that it works in some cases (like above)
and not in others (in the test VM).

Needs more thought…

Ludo’.




This bug report was last modified 7 years and 231 days ago.

Previous Next


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