[racket-dev] Unlucky with Racket 6.0 (1/2)

From: Paulo Matos (paulo at matos-sorge.com)
Date: Wed Mar 12 18:35:36 EDT 2014

Hello,

I have downloaded the Ubuntu precise script, installed it on a Kubuntu 
precise machine and ran it. Everything went smoothly.

If I try to run DrRacket it starts, when I go to Preferences it SEGFAULTS.

To obtain more information I go to drracket script and try to execute it 
under bash -x:
$ bash -x local-install/racket-6.0/bin/drracket
+ 
saveP=/home/pmatos/.rvm/gems/ruby-1.9.3-p286/bin:/home/pmatos/.rvm/gems/ruby-1.9.3-p286 at global/bin:/home/pmatos/.rvm/rubies/ruby-1.9.3-p286/bin:/home/pmatos/.rvm/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/pmatos/.rvm/bin
+ PATH=/usr/bin:/bin
++ pwd
+ saveD=/home/pmatos
++ dirname local-install/racket-6.0/bin/drracket
+ D=local-install/racket-6.0/bin
++ basename local-install/racket-6.0/bin/drracket
+ F=drracket
+ cd local-install/racket-6.0/bin
+ test -L drracket
++ pwd
+ D=/home/pmatos/local-install/racket-6.0/bin
+ cd /home/pmatos
+ bindir=/home/pmatos/local-install/racket-6.0/bin
+ 
PATH=/home/pmatos/.rvm/gems/ruby-1.9.3-p286/bin:/home/pmatos/.rvm/gems/ruby-1.9.3-p286 at global/bin:/home/pmatos/.rvm/rubies/ruby-1.9.3-p286/bin:/home/pmatos/.rvm/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/pmatos/.rvm/bin
+ librktdir=/home/pmatos/local-install/racket-6.0/bin/../lib
+ findxend
+ oneargflag=
+ case "$1" in
+ exec /home/pmatos/local-install/racket-6.0/bin/../lib/gracket -N 
local-install/racket-6.0/bin/drracket -J DrRacket -l- drracket/drracket.rkt

(drracket:14735): GLib-GObject-CRITICAL **: g_signal_connect_data: 
assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

... [A few more pages of this]

(drracket:14735): GLib-GObject-CRITICAL **: g_signal_connect_data: 
assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
SIGSEGV MAPERR si_code 1 fault on addr 0x3e00
Aborted (core dumped)

So, I decide to run the gracket command under gdb but now it segfaults 
immediately without displaying drracket window.
$ gdb --args /home/pmatos/local-install/racket-6.0/bin/../lib/gracket -N 
local-install/racket-6.0/bin/drracket -J DrRacket -l- drracket/drracket.rkt
GNU gdb (GDB) 7.6.1-ubuntu
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/pmatos/local-install/racket-6.0/lib/gracket...(no debugging 
symbols found)...done.
(gdb) r
Starting program: 
/home/pmatos/local-install/racket-6.0/bin/../lib/gracket -N 
local-install/racket-6.0/bin/drracket -J DrRacket -l- drracket/drracket.rkt
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff6503700 (LWP 14760)]

Program received signal SIGSEGV, Segmentation fault.
0x00000000006824fa in scheme_gmp_tls_unload ()
(gdb) bt
#0  0x00000000006824fa in scheme_gmp_tls_unload ()
#1  0x000000000064c6f3 in ?? ()
#2  0x000000000068e95f in ?? ()
#3  0x000000000068f01f in ?? ()
#4  0x000000000069313a in GC_malloc_atomic ()
#5  0x000000000060fbe1 in scheme_make_sized_offset_byte_string ()
#6  0x00000000004658c3 in scheme_make_sized_offset_kind_path ()
#7  0x000000000046e3c1 in ?? ()
#8  0x000000000046965f in ?? ()
#9  0x000000000046f0b0 in scheme_simplify_path ()
#10 0x00007ffff7fecb0e in ?? ()
#11 0x00000000ffffffff in ?? ()
#12 0x00007ffff7e31a46 in ?? ()
#13 0x00000000ffffffff in ?? ()
#14 0x0000000000000005 in ?? ()
#15 0x00007fffffffc230 in ?? ()
#16 0x00007ffff6866798 in ?? ()
#17 0x0000000000000005 in ?? ()
#18 0x00007ffff6505dd8 in ?? ()
#19 0x00000000000000ae in ?? ()
#20 0xfffffffffffff420 in ?? ()
#21 0x0000000000000001 in ?? ()
#22 0x0000000000460fad in scheme_do_eval ()
#23 0x000000000047f5f7 in ?? ()
#24 0x00007ffff7fe27af in ?? ()
#25 0x00007fffffffc400 in ?? ()
#26 0x00007ffff7e3b583 in ?? ()
#27 0x0000000000000000 in ?? ()
(gdb) disass
Dump of assembler code for function scheme_gmp_tls_unload:
    0x00000000006824d0 <+0>:     mov    (%rdi),%rdx
    0x00000000006824d3 <+3>:     mov    0x2b5afe(%rip),%rax        # 
0x937fd8
    0x00000000006824da <+10>:    mov    %rdx,%fs:0x960(%rax)
    0x00000000006824e2 <+18>:    mov    0x8(%rdi),%rdx
    0x00000000006824e6 <+22>:    mov    %rdx,%fs:0x958(%rax)
    0x00000000006824ee <+30>:    mov    0x10(%rdi),%rdx
    0x00000000006824f2 <+34>:    mov    %rdx,%fs:0x980(%rax)
=> 0x00000000006824fa <+42>:    movq   $0x0,(%rdi)
    0x0000000000682501 <+49>:    mov    %rsi,%fs:0x950(%rax)
    0x0000000000682509 <+57>:    retq
End of assembler dump.
(gdb) info regs
Undefined info command: "regs".  Try "help info".
(gdb) info reg
rax            0xfffffffffffff420       -3040
rbx            0xfffffffffffff420       -3040
rcx            0x0      0
rdx            0x7ffff7fd0088   140737353941128
rsi            0x0      0
rdi            0x7ffff551c4b8   140737309164728
rbp            0x9a5650 0x9a5650
rsp            0x7fffffffbbf8   0x7fffffffbbf8
r8             0x7fffffffbbb0   140737488337840
r9             0x9b3ad0 10173136
r10            0x7ffff5cbc000   140737317158912
r11            0x213    531
r12            0x5a0000 5898240
r13            0x6      6
r14            0x9a5650 10114640
r15            0x98e5e0 10020320
rip            0x6824fa 0x6824fa <scheme_gmp_tls_unload+42>
eflags         0x10206  [ PF IF RF ]
cs             0x33     51
ss             0x2b     43
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0

I don't know enough about racket to understand what's going on. Let me 
know if you need more information to understand this.

-- 
PMatos


Posted on the dev mailing list.