[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[skribilo-users] Skribilo 0.9.3 segfaults
From: |
Vladimir Zhbanov |
Subject: |
[skribilo-users] Skribilo 0.9.3 segfaults |
Date: |
Wed, 25 May 2016 15:54:51 +0300 |
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] Skribilo 0.9.3 segfaults,
Vladimir Zhbanov <=