GNU bug report logs -
#28399
[PATCH]: Fix mysql activation, and add a basic test.
Previous Next
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
View this message in rfc822 format
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.