[racket] crash possibly related to sqlite

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed Jul 9 06:03:44 EDT 2014

Would it be possible to send me a program and instructions so that I
can replicate the crash?

I think it's likely to be a bug in the SQLite binding, but the stack
trace doesn't suggest a more specific place to look, so far.

At Fri, 4 Jul 2014 01:01:37 +0400, Dmitry Pavlov wrote:
> Hello,
> 
> I have a big Racket+C program that does numerical
> integration and uses flvectors, unsafe ops and ffi.
> 
> Recently I added some access to sqlite3 too.
> The program instantly got the habit of crashing at
> random moments, after running safely for hours.
> It never happened before, so I guess the most likely
> suspect is the sqlite library.
> 
> The crash message is:
> SIGSEGV MAPERR si_code 1 fault on addr (nil)
> 
> I managed to build a racket binary with debug info
> from the most recent source
> 116555c5177e306e9e871ce36af2fadbaedcbd7e
> 
> Below is what I have obtained from the core dump.
> So my question is: how does one debug that
> kind of thing? Is it possible to make the crash
> happen faster? Is it possible to run racket with
> array boundary and stack and memory checks,
> or run racket under valgrind or something?
> 
> Best regards,
> 
> Dmitry
> 
> 
> 
> $ gdb ~/racket/racket/bin/racket core
> GNU gdb (GDB) 7.6.2 (Debian 7.6.2-1)
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from /home/dpavlov/racket/racket/bin/racket...done.
> 
> warning: core file may not match specified executable file.
> [New LWP 19719]
> [New LWP 19720]
> 
> warning: Could not load shared library symbols for linux-vdso.so.1.
> Do you need "set solib-search-path" or "set sysroot"?
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> Core was generated by `/home/dpavlov/racket/racket/bin/racket integte2.slon'.
> Program terminated with signal 6, Aborted.
> #0  0x00007f6bbf9773a9 in __GI_raise (sig=sig at entry=6)
>     at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
> (gdb) bt
> #0  0x00007f6bbf9773a9 in __GI_raise (sig=sig at entry=6)
>     at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> #1  0x00007f6bbf97a4c8 in __GI_abort () at abort.c:89
> #2  0x000000000078dd29 in fault_handler (sn=11, si=0x1e86670, ctx=0x1e86540)
>     at ./sighand.c:99
> #3  <signal handler called>
> #4  0x00007f6bbc583736 in ?? ()
> #5  0x00007fff77e11b10 in ?? ()
> #6  0x00007f6bc060d708 in ?? ()
> #7  0x00007f6bbeb59c18 in ?? ()
> #8  0x0000000000000001 in ?? ()
> #9  0x0000000000000004 in ?? ()
> #10 0x00007f6bbeb59c98 in ?? ()
> #11 0x00007f6baccec548 in ?? ()
> #12 0x00007f6bbeb59bd0 in ?? ()
> #13 0x00007fff77e11a10 in ?? ()
> #14 0x00007f6bbc03677b in ?? ()
> #15 0x00007fff77e11a10 in ?? ()
> #16 0x00007f6bbc773eea in ?? ()
> #17 0x00007f6bbeb59be8 in ?? ()
> #18 0x00007f6bc060d708 in ?? ()
> #19 0x00007fff77e11c10 in ?? ()
> #20 0x0000000000000005 in ?? ()
> #21 0x0000000000000004 in ?? ()
> #22 0x00007f6bbeb59cf0 in ?? ()
> #23 0x00007f6bb4e89640 in ?? ()
> #24 0x00007f6bbeb59c88 in ?? ()
> #25 0x00007fff77e11a70 in ?? ()
> #26 0x00007f6bc0616d9d in ?? ()
> #27 0x00007f6bba6d1730 in ?? ()
> #28 0x00007f6bbc777349 in ?? ()
> #29 0x00007f6bb9e41608 in ?? ()
> #30 0x0000000000000004 in ?? ()
> #31 0x0000000000a71110 in scheme_default_prompt_tag ()
> #32 0x0000000000004048 in ?? ()
> #33 0x0000000000000004 in ?? ()
> #34 0x0000000000000001 in ?? ()
> #35 0x00007f6bbddebb10 in ?? ()
> #36 0x00007fff77e11f80 in ?? ()
> #37 0x00007fff77e11d90 in ?? ()
> #38 0x00000000004564ec in scheme_do_eval (
>     obj=0x7884bc <fast_malloc_one_small_tagged+202>, num_rands=32619,
>     rands=0x7f6bac7b76f8, get_value=-1095394432) at ./../src/eval.c:2952
> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
> (gdb)
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

Posted on the users mailing list.