[racket] Racket 5.2.1 segfault

From: Simon Haines (simon.haines at con-amalgamate.net)
Date: Thu Mar 1 17:29:54 EST 2012

On 1 March 2012 17:16, Kevin Tew <tewk at cs.utah.edu> wrote:

>  This is the magic incantation I use to use with valgrind.
> valgrind --tool=memcheck --db-attach=yes
> --vex-iropt-precise-memory-exns=yes --leak-check=full --num-callers=40
Thanks Kevin, I retried my test with your options, but had the same result
(see below). I'm getting this same segfault when trying to run racket as a
cgi process under apache, i.e. when one process is 'hosting' another, but I
don't know if the issues are related. The 8mb heap usage may be confusing
the issue: apache might be starving racket of memory if the cgi process
exceeds some limit, but why the segfault in valgrind?

$ valgrind --tool=memcheck --vex-iropt-precise-memory-exns=yes
--num-callers=40 ./test.rkt
==2305== Memcheck, a memory error detector
==2305== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==2305== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==2305== Command: ./test.rkt
==2305== Invalid read of size 8
==2305==    at 0x5DD34D: scheme_longjmpup (in /home/simon/racket/bin/racket)
==2305==    by 0x4402CD: scheme_handle_stack_overflow (in
==2305==    by 0x478DD0: overflow_equal_hash_key (in
==2305==    by 0x47D63A: equal_hash_key (in /home/simon/racket/bin/racket)
==2305==    by 0x47DB39: scheme_equal_hash_key (in
==2305==    by 0x51147E: make_hash_indices_for_equal (in
==2305==    by 0x479476: get_bucket (in /home/simon/racket/bin/racket)
==2305==    by 0x47AF1E: scheme_lookup_in_table (in
==2305==    by 0x5FB742: scheme_make_prefab_struct_type_raw (in
==2305==    by 0x5FE5F8: scheme_lookup_prefab_type (in
==2305==    by 0x621408: scheme_init_thread_places (in
==2305==    by 0x42DBB4: place_instance_init (in
==2305==    by 0x43029A: scheme_engine_instance_init (in
==2305==    by 0x43040E: scheme_basic_env (in /home/simon/racket/bin/racket)
==2305==    by 0x425458: run_from_cmd_line.clone.1 (in
==2305==    by 0x426578: main_after_stack (in /home/simon/racket/bin/racket)
==2305==    by 0x427070: scheme_main_stack_setup (in
==2305==    by 0x4265BD: main (in /home/simon/racket/bin/racket)
==2305==  Address 0x8 is not stack'd, malloc'd or (recently) free'd
SIGSEGV MAPERR si_code 1 fault on addr 0x8
==2305== HEAP SUMMARY:
==2305==     in use at exit: 8,554,151 bytes in 1,497 blocks
==2305==   total heap usage: 1,507 allocs, 10 frees, 8,567,479 bytes
==2305== LEAK SUMMARY:
==2305==    definitely lost: 16,680 bytes in 4 blocks
==2305==    indirectly lost: 0 bytes in 0 blocks
==2305==      possibly lost: 576 bytes in 2 blocks
==2305==    still reachable: 8,536,895 bytes in 1,491 blocks
==2305==         suppressed: 0 bytes in 0 blocks
==2305== Rerun with --leak-check=full to see details of leaked memory
==2305== For counts of detected and suppressed errors, rerun with: -v
==2305== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 2 from 2)
zsh: killed     valgrind --tool=memcheck
--vex-iropt-precise-memory-exns=yes --num-callers=40
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20120302/22335af5/attachment.html>

Posted on the users mailing list.