Hi

I'm trying to build skribilo 0.9.3. Every now and then it
segfaults when building its documentation, either html, or info
etc, that is after

  SKRHTML user.html

or e.g.

  SKRINFO skribilo.info

I get something like this

--------------------------------8<--------------------------------
make[3]: Entering directory '/home/vovka/skribilo-0.9.3/doc/user'
  SKRLOUT user.lout
/bin/bash: line 3:  2821 Segmentation fault
GUILE_LOAD_PATH=../../doc/modules:$GUILE_LOAD_PATH
GUILE_LOAD_COMPILED_PATH=../../doc/modules:$GUILE_LOAD_COMPILED_PATH
GUILE_AUTO_COMPILE=0 ../../src/pre-inst-skribilo -I . -P ../../doc/img
-S . -S ../../src/guile -B . -e '(define %top-srcdir "../..")' -e
'(define %top-builddir "../..")' -e "(define %have-ploticus? (= 1 1))"
-e "(define %ploticus-path \"/usr/bin/ploticus\")" -e "(define
%have-lout? (= 1 1))" --target=lout -o user.lout user.skb
Makefile:717: recipe for target 'user.lout' failed
make[3]: *** [user.lout] Error 139
-------------------------------->8--------------------------------

I've tried both git and tarball versions. Well, sometimes it even
builds, but it then segfaults when I enter the command found in
the manual:

skribilo -R rss-2 -t lout -c column-number=2 < rss20.xml

Most often it just outputs

  Segmentation fault

but once I got

  GC Warning: Failed to expand heap by -1212588032 bytes
  GC Warning: Failed to expand heap by -1217970176 bytes
  GC Warning: Out of Memory! Heap size: 6 MiB. Returning NULL!
  Segmentation fault

OK, I have standard Debian/stable (only the kernel is a bit more
recent):

  $ uname -a
  Linux otoiro-2 4.5.0-1-686-pae #1 SMP Debian 4.5.1-1
  (2016-04-14) i686 GNU/Linux

The same issue I have on my home machine. On both I have the
stable guile from Debian repo which I used a few years (mostly)
without issues.

  $ guile --version
  guile (GNU Guile) 2.0.11
  Packaged by Debian (2.0.11-deb+1-9)

I have installed a few programs using guile, and they seem to work
well. In particular I have Haunt which uses guile-reader.

What else... I have the following env var set
  GUILE_LOAD_PATH=/usr/local/share/guile/site/2.0:/usr/local/share/guile-reader

Further, I had locale issues, but it's another problem and
I decided to build using LANG=C yet.

I tried to debug using strace but understood nothing from its
output. Then I decided to dump core, and gdb outputs as follows:

--------------------------------8<--------------------------------
$ gdb /usr/bin/guile-2.0 ./doc/user/core
... /snip boilerplate/ ...

Reading symbols from /usr/bin/guile-2.0...(no debugging symbols found)...done.

warning: core file may not match specified executable file.
[New LWP 2261]
[New LWP 2260]
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
Core was generated by `/usr/bin/guile -L
/home/vovka/skribilo-0.9.3/src/guile -L /home/vovka/skribilo-'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  generic_reader_smob_mark (reader=0x9b84f30) at reader.c:2466

warning: Source file is more recent than executable.
2466               *deps != SCM_BOOL_F;
(gdb) bt
#0  generic_reader_smob_mark (reader=0x9b84f30) at reader.c:2466
#1  0xb76ac8e6 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#2  0xb736b88a in GC_mark_from () from /usr/lib/i386-linux-gnu/libgc.so.1
#3  0xb736be23 in GC_do_local_mark () from /usr/lib/i386-linux-gnu/libgc.so.1
#4  0xb736bff4 in GC_mark_local () from /usr/lib/i386-linux-gnu/libgc.so.1
#5  0xb736c29a in GC_help_marker () from /usr/lib/i386-linux-gnu/libgc.so.1
#6  0xb73746a8 in GC_mark_thread () from /usr/lib/i386-linux-gnu/libgc.so.1
#7  0xb7561efb in start_thread (arg=0xb7194b40) at pthread_create.c:309
#8  0xb7499ede in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129
(gdb) bt full
#0  generic_reader_smob_mark (reader=0x9b84f30) at reader.c:2466
        deps = 0x40
        prev_dep = 0x4
        smobinfo = 0x990a350
#1  0xb76ac8e6 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
No symbol table info available.
#2  0xb736b88a in GC_mark_from () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#3  0xb736be23 in GC_do_local_mark () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#4  0xb736bff4 in GC_mark_local () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#5  0xb736c29a in GC_help_marker () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#6  0xb73746a8 in GC_mark_thread () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#7  0xb7561efb in start_thread (arg=0xb7194b40) at pthread_create.c:309
        __res = <optimized out>
        pd = 0xb7194b40
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1219018752,
-1223079104, 4001536, -1223080920,
                -41732626, 1664632302}, mask_was_saved = 0}}, priv =
{pad = {0x0, 0x0, 0x0, 0x0},
            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#8  0xb7499ede in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129
No locals.
-------------------------------->8--------------------------------

I see almost the same on every segfault. AFAICS, there are some
GC issues appearing while a new thread is starting, and probably
some variable in generic_reader_smob_mark () gets an uninitialized
value somehow?

(Well, I know this guile version has some GC issues, probably some
race conditions, because I met them when worked on the geda-gaf
MinGW port for Windows after the guile version change from 1.8 to
2.0, and I'm pretty certain the culprit was guile-2.0 for several
reasons.)

However, I'm neither guile, nor threading expert, so I don't know
what to do further. Any help is much appreciated, be it even a
workaround. Please help.

Regards,
  Vladimir

_______________________________________________
Skribilo-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/skribilo-users

Reply via email to