[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#28399] [PATCH 1/2] services: mysql: Fix missing modules on activati

From: Ludovic Courtès
Subject: [bug#28399] [PATCH 1/2] services: mysql: Fix missing modules on activation.
Date: Sat, 16 Sep 2017 00:02:08 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)


Christopher Baines <address@hidden> skribis:

> On Mon, 11 Sep 2017 09:50:46 +0200
> address@hidden (Ludovic Courtès) wrote:
>> Hi Chris,
>> Christopher Baines <address@hidden> 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))

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 
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…


reply via email to

[Prev in Thread] Current Thread [Next in Thread]