Has anyone successfully run a Rails application on an Altix, or other
ia64 machine? I'm getting a segmentation fault in gc.c. More info below.
I'm using ruby 1.8.2, and Rails 0.12.1. uname -a returns
Linux isc-altix 2.4.21-sgi304r1 #1 SMP Sat Jan 29 22:43:29 PST 2005 ia64
ia64 ia64 GNU/Linux
I built ruby as follows:
env CFLAGS='-O0 -g' ./configure --prefix=$HOME/ruby
make
make test
make install
This all goes fine. I then proceed to also install the rails gems, and
my app. (By the way, it works fine on an ia32 Linux machine.) I then
run webrick, which outputs this:
$ script/server
=> Rails application started on http://0.0.0.0:3000
[2005-05-16 20:48:32] INFO WEBrick 1.3.1
[2005-05-16 20:48:32] INFO ruby 1.8.2 (2004-12-25) [ia64-linux]
[2005-05-16 20:48:32] INFO WEBrick::HTTPServer#start: pid=4826 port=3000
So far so good. Then I make a request to webrick and get this message:
/home/ajenkins/deploy/lib/ruby/1.8/timeout.rb:40: [BUG] Segmentation fault
ruby 1.8.2 (2004-12-25) [ia64-linux]
Aborted (core dumped)
Examining the core dump in gdb shows:
(gdb) bt
#0 raise (sig=0) at ../nptl/sysdeps/unix/sysv/linux/raise.c:30
#1 0x20000000001a4a40 in abort () at ../sysdeps/generic/abort.c:50
#2 0x40000000002008f0 in rb_bug (fmt=0x40000000002244d8 "Segmentation
fault") at error.c:214
#3 0x4000000000177a10 in sigsegv (sig=11) at signal.c:446
#4 <signal handler called>
#5 gc_mark (ptr=Cannot access memory at address 0xfffffffffffffff0
) at gc.c:713
#6 0x40000000000798f0 in rb_gc_mark (ptr=8) at gc.c:736
#7 0x4000000000050a20 in thread_mark (th=0x60000000008cee90) at eval.c:9705
#8 0x400000000007a5e0 in gc_mark_children (ptr=2305843009237353224,
lev=2) at gc.c:942
#9 0x4000000000079880 in gc_mark (ptr=2305843009237353224, lev=1) at
gc.c:729
#10 0x400000000007a880 in gc_mark_children (ptr=2305843009237353304,
lev=1) at gc.c:974
#11 0x4000000000079880 in gc_mark (ptr=2305843009237353304, lev=0) at
gc.c:729
#12 0x4000000000079060 in mark_locations_array (x=0x60000ffffff59690,
n=82526) at gc.c:624
#13 0x4000000000079150 in rb_gc_mark_locations
(start=0x60000ffffff50f10, end=0x60000fffffffa988)
at gc.c:637
#14 0x400000000007d250 in garbage_collect () at gc.c:1354
#15 0x400000000000f620 in __do_jv_register_classes ()
#16 0x4000000000079650 in gc_mark (ptr=Cannot access memory at address
0xfffffffffffffff0
) at gc.c:712
#17 0x4000000000079650 in gc_mark (ptr=Cannot access memory at address
0xfffffffffffffff0
) at gc.c:712
#18 0x0000000000000000 in ?? ()
#19 0x0000000000000000 in ?? ()
Previous frame identical to this frame (corrupt stack?)
(gdb)
Seems like some data structures in the GC are getting corrupted. Has
anyone else run into this, and found a workaround or fix? Or is it
known not to work on this architecture? Thank you for any information.
Adam