skribilo-users
[Top][All Lists]
Advanced

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

Re: [skribilo-users] Skribilo 0.9.3 segfaults


From: Vladimir Zhbanov
Subject: Re: [skribilo-users] Skribilo 0.9.3 segfaults
Date: Thu, 9 Jun 2016 11:19:08 +0300

(sorry for the private copy)

On 6/3/16, Ludovic Courtès <address@hidden> wrote:
...
> Could you try upgrading libgc, for lack of better ideas?

OK, now I build both guile-reader and skribilo only using
tarballs. Initially I had libc6 version 2.19-18+deb8u4 (Debian
stable version) and gc 7.2d-6.4. All numbers and letters after
dashes are Debian revisions where some fixes were added or
removed. I won't speak much about compilation with that libc as it
generally segfaulted very often.  After some googling I decided to
upgrade glibc and binutils for it and now I have 2.22-9. After
upgrading, skribilo seems to compile without errors every time,
but when I run it, it mostly segfaults or yields some errors. Then
I upgraded gc and installed 7.4.2-8 found in the Debian testing
repository. I've carried out many experiments and collected the
most often happening errors/backtraces typical for the both
mentioned gc versions below (here is only the output related to
using gc 7.4.2).

The most often appearing core output:

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

warning: core file may not match specified executable file.
[New LWP 17430]
[New LWP 17431]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/guile -L /usr/local/share/skribilo/0.9.3 -c

;; Tell Guile not to iss'.
Program terminated with signal SIGSEGV, Segmentation fault.
[Current thread is 1 (Thread 0xb71a4700 (LWP 17430))]
(gdb) bt
#0  __memcpy_sse2_unaligned () at
../sysdeps/i386/i686/multiarch/memcpy-sse2-unaligned.S:483
#1  0xb76bcb22 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#2  0xb76bcdce in scm_peek_char () from
/usr/lib/i386-linux-gnu/libguile-2.0.so.22
#3  0xb7703924 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#4  0xb77229f4 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#5  0xb7666fe5 in scm_primitive_eval () from
/usr/lib/i386-linux-gnu/libguile-2.0.so.22
#6  0xb766709a in scm_eval () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#7  0xb7703949 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#8  0xb77229f4 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#9  0xb766688e in scm_call_1 () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#10 0xb76f2a33 in scm_call_with_input_string () from
/usr/lib/i386-linux-gnu/libguile-2.0.so.22
#11 0xb7703949 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#12 0xb77229f4 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#13 0xb7666fe5 in scm_primitive_eval () from
/usr/lib/i386-linux-gnu/libguile-2.0.so.22
#14 0xb766709a in scm_eval () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#15 0xb76d09e5 in scm_shell () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#16 0x0804896f in ?? ()
#17 0xb768bc03 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#18 0xb765c200 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#19 0xb76fa41c in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#20 0xb76d11d4 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#21 0xb7703949 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#22 0xb77229f4 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#23 0xb7666954 in scm_call_4 () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#24 0xb76fa26e in scm_catch_with_pre_unwind_handler () from
/usr/lib/i386-linux-gnu/libguile-2.0.so.22
#25 0xb76fa4d6 in scm_c_catch () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#26 0xb765c075 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#27 0xb765c303 in scm_c_with_continuation_barrier () from
/usr/lib/i386-linux-gnu/libguile-2.0.so.22
#28 0xb76f7568 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#29 0xb737df55 in GC_call_with_stack_base () from
/usr/lib/i386-linux-gnu/libgc.so.1
#30 0xb76f762c in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#31 0xb76f765b in scm_with_guile () from
/usr/lib/i386-linux-gnu/libguile-2.0.so.22
#32 0xb768bb92 in scm_boot_guile () from
/usr/lib/i386-linux-gnu/libguile-2.0.so.22
#33 0x08048a61 in ?? ()
#34 0xb73d6517 in __libc_start_main (main=0x80489ff, argc=11,
argv=0xbfdecd74, init=0x8048a80, fini=0x8048af0, rtld_fini=0xb77d1470
<_dl_fini>, stack_end=0xbfdecd6c) at libc-start.c:291
#35 0x08048881 in ?? ()
-------------------------------->8--------------------------------

The next error output appears not so often, differing in the
parser error args:

--------------------------------8<--------------------------------
Backtrace:
In unknown file:
   ?: 19 [apply-smob/1 #<catch-closure 90d9ba0>]
In ice-9/boot-9.scm:
  63: 18 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 17 [eval # #]
In unknown file:
   ?: 16 [call-with-input-string "\n\n;; Tell Guile not to issue
warnings about duplicate bindings.\n(default-duplicate-binding-handler
'(last))\n\n(use-modules (skribilo
condition))\n\n(call-with-skribilo-error-catch/exit\n  (lambda ()\n
(apply (module-ref (resolve-interface '(skribilo)) 'skribilo) (cdr
(command-line)))))" ...]
In ice-9/command-line.scm:
 180: 15 [#<procedure 90dc8c0 at ice-9/command-line.scm:175:6 (port)>
#<input: string 8f97c30>]
In unknown file:
   ?: 14 [eval (call-with-skribilo-error-catch/exit #) #<directory # 9055630>]
In ice-9/boot-9.scm:
 171: 13 [with-throw-handler srfi-34 ...]
In skribilo.scm:
 429: 12 [skribilo "-R" "rss-2" "-t" "lout" "-c" "column-number=2"]
 150: 11 [doskribe #<module (#{ g3589}#) 95b7b40>]
In skribilo/evaluator.scm:
 134: 10 [evaluate-document-from-port #<input: file 0> #<<engine> lout
94250c0> ...]
In ice-9/boot-9.scm:
2401: 9 [save-module-excursion #<procedure 961ca08 at
skribilo/evaluator.scm:89:3 ()>]
In skribilo/evaluator.scm:
  94: 8 [#<procedure 961ca08 at skribilo/evaluator.scm:89:3 ()>]
In skribilo/reader/rss-2.scm:
 339: 7 [#<procedure 9483e20 at skribilo/reader/rss-2.scm:334:2
(port)> #<input: file 0>]
In sxml/simple.scm:
 215: 6 [xml->sxml #<input: file 0> #:namespaces ...]
 143: 5 [loop #<input: file 0> () #f ()]
 143: 4 [loop #<input: file 0> () ...]
 143: 3 [loop #<input: file 0> () ...]
 143: 2 [loop #<input: file 0> () ...]
In sxml/upstream/SSAX.scm:
1925: 1 [#<procedure 9673438 at sxml/upstream/SSAX.scm:1870:3 (port
expect-eof? str-handler seed)> #<input: file 0> ...]
 723: 0 [ssax:read-NCName #<input: file 0>]

sxml/upstream/SSAX.scm:723:6: In procedure ssax:read-NCName:
sxml/upstream/SSAX.scm:723:6: Throw to key `parser-error' with args
`(#<input: file 0> "XMLNS [4] for '" #\? "'")'.
-------------------------------->8--------------------------------

Yet another core dump, I've mentioned similar in previous emails:

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

warning: core file may not match specified executable file.
[New LWP 17272]
[New LWP 17271]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/guile -L /usr/local/share/skribilo/0.9.3 -c

;; Tell Guile not to iss'.
Program terminated with signal SIGSEGV, Segmentation fault.
[Current thread is 1 (Thread 0xb7105b40 (LWP 17272))]
(gdb) bt
#0  generic_reader_smob_mark (reader=0x9654f30) at reader.c:2466
#1  0xb76338e6 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
#2  0xb72dc86a in GC_mark_from () from /usr/lib/i386-linux-gnu/libgc.so.1
#3  0xb72dce03 in GC_do_local_mark () from /usr/lib/i386-linux-gnu/libgc.so.1
#4  0xb72dcfd4 in GC_mark_local () from /usr/lib/i386-linux-gnu/libgc.so.1
#5  0xb72dd27a in GC_help_marker () from /usr/lib/i386-linux-gnu/libgc.so.1
#6  0xb72e5657 in GC_mark_thread () from /usr/lib/i386-linux-gnu/libgc.so.1
#7  0xb74de2ce in start_thread (arg=0xb7105b40) at pthread_create.c:334
#8  0xb740823e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122
(gdb) bt full
#0  generic_reader_smob_mark (reader=0x9654f30) at reader.c:2466
        deps = 0x40
        prev_dep = 0x4
        smobinfo = 0x93db4d0
#1  0xb76338e6 in ?? () from /usr/lib/i386-linux-gnu/libguile-2.0.so.22
No symbol table info available.
#2  0xb72dc86a in GC_mark_from () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#3  0xb72dce03 in GC_do_local_mark () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#4  0xb72dcfd4 in GC_mark_local () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#5  0xb72dd27a in GC_help_marker () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#6  0xb72e5657 in GC_mark_thread () from /usr/lib/i386-linux-gnu/libgc.so.1
No symbol table info available.
#7  0xb74de2ce in start_thread (arg=0xb7105b40) at pthread_create.c:334
        __res = <optimized out>
        pd = 0xb7105b40
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1219551232, 0,
4001536, -1223666648, -388759223, 1404555593}, 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  0xb740823e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:122
No locals.
-------------------------------->8--------------------------------

Sometimes I have the following (and its core dump is the same as
in the first case I've mentioned above):

--------------------------------8<--------------------------------
GC Warning: Failed to expand heap by -1212575744 bytes
GC Warning: Failed to expand heap by -1217957888 bytes
GC Warning: Out of Memory! Heap size: 6 MiB. Returning NULL!
Segmentation fault
-------------------------------->8--------------------------------

AFAICS some issues have been fixed in the last gc revision G in
the branch release-7_2 [1] though I don't know if this is somehow
related to the issue described here.

Thanks,
  Vladimir

[1] 
https://github.com/ivmai/bdwgc/commit/66f78e602c6d79a9c8fff3eb3f405302ac4e573f



reply via email to

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