seg fault when running tests.

I'm getting a seg fault when trying to run unit/functional tests on a Red Hat Linux Enterprise server 4 RHEL4. Otherwise, everything seems to run just fine. I'm using Apache/2.0.52 and fcgi with no issues. script/console works just fine. Here are some details:

Any help would be appreciated.

$ uname -a Linux example.com 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:29:47 EST 2005 x86_64 x86_64 x86_64 GNU/Linux

$ ruby test/unit/survey_test.rb /usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:99: [BUG] Segmentation fault ruby 1.8.4 (2005-12-24) [x86_64-linux]

Aborted

$ gem list

*** LOCAL GEMS ***

actionmailer (1.2.5, 1.2.4, 1.2.3)     Service layer for easy email delivery and testing.

actionpack (1.12.5, 1.12.4, 1.12.3)     Web-flow and rendering framework putting the VC in MVC.

actionwebservice (1.1.6, 1.1.5, 1.1.4)     Web service support for Action Pack.

activerecord (1.14.4, 1.14.3)     Implements the ActiveRecord pattern for ORM.

activesupport (1.3.1)     Support and utility classes used by the Rails framework.

rails (1.1.6, 1.1.5, 1.1.4)     Web-application framework with template engine, control-flow layer,     and ORM.

rake (0.7.1)     Ruby based make-like utility.

rcov (0.7.0.1)     Code coverage analysis tool for Ruby

RedCloth (3.0.4)     RedCloth is a module for using Textile and Markdown in Ruby. Textile     and Markdown are text formats. A very simple text format. Another     stab at making readable text that can be converted to HTML.

sources (0.0.1)     This package provides download sources for remote gem installation

Well, the only gem (presumably) possible of generating a segfault is rcov. Not sure how it’s getting pulled in when you run a single test file, but try getting rid of it and see if that fixes the problem.

Jason

I removed rcov but no luck I still get the seg fault. Could it be a weird problem with the 64 bit version of ruby?

I created a test rails app from scratch and this seems to work.

I'm wondering if I'm banging my head into SELinux crap with this redhat system?

Thank you for the gdb hint.

Not sure what to make of this but someone with knowledge of the source may have a clue.

Program received signal SIGSEGV, Segmentation fault. 0x00000038ddc29a59 in rb_fatal () from /usr/lib64/libruby.so.1.8 (gdb) backtrace #0 0x00000038ddc29a59 in rb_fatal () from /usr/lib64/libruby.so.1.8 #1 0x00000038ddc3733c in rb_protect () from /usr/lib64/libruby.so.1.8 #2 0x00000038ddc24a26 in Init_Comparable () from /usr/lib64/libruby.so.1.8 #3 0x00000038ddc25399 in ruby_globi () from /usr/lib64/libruby.so.1.8 #4 0x00000038ddc25475 in rb_globi () from /usr/lib64/libruby.so.1.8 #5 0x00000038ddc2567a in rb_globi () from /usr/lib64/libruby.so.1.8 #6 0x00000038ddc25656 in rb_globi () from /usr/lib64/libruby.so.1.8 #7 0x00000038ddc25656 in rb_globi () from /usr/lib64/libruby.so.1.8 #8 0x00000038ddc257cc in rb_globi () from /usr/lib64/libruby.so.1.8 #9 0x00000038ddc25834 in rb_globi () from /usr/lib64/libruby.so.1.8 #10 0x00000038ddc38b8d in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #11 0x00000038ddc37fe2 in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #12 0x00000038ddc395e2 in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #13 0x00000038ddc31b0d in rb_Array () from /usr/lib64/libruby.so.1.8 #14 0x00000038ddc318da in rb_Array () from /usr/lib64/libruby.so.1.8 #15 0x00000038ddc3094b in rb_Array () from /usr/lib64/libruby.so.1.8 #16 0x00000038ddc318da in rb_Array () from /usr/lib64/libruby.so.1.8 #17 0x00000038ddc2ff13 in rb_Array () from /usr/lib64/libruby.so.1.8 #18 0x00000038ddc3874e in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #19 0x00000038ddc395e2 in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #20 0x00000038ddc31db1 in rb_Array () from /usr/lib64/libruby.so.1.8 #21 0x00000038ddc2ff13 in rb_Array () from /usr/lib64/libruby.so.1.8 #22 0x00000038ddc35c99 in rb_need_block () from /usr/lib64/libruby.so.1.8 #23 0x00000038ddc3612c in rb_yield () from /usr/lib64/libruby.so.1.8 #24 0x00000038ddc18b65 in rb_ary_each () from /usr/lib64/libruby.so.1.8 #25 0x00000038ddc38b6e in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #26 0x00000038ddc37fe2 in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #27 0x00000038ddc395e2 in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #28 0x00000038ddc31b0d in rb_Array () from /usr/lib64/libruby.so.1.8 #29 0x00000038ddc3094b in rb_Array () from /usr/lib64/libruby.so.1.8 #30 0x00000038ddc3874e in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #31 0x00000038ddc395e2 in rb_with_disable_interrupt () from /usr/lib64/libruby.so.1.8 #32 0x00000038ddc31b0d in rb_Array () from /usr/lib64/libruby.so.1.8 #33 0x00000038ddc32aeb in rb_Array () from /usr/lib64/libruby.so.1.8 ... lots more...

nope. I turned selinux to permissive mode and still get the segfault. Plus now I'm talking to myself.

I was able to get past this by only recompiling ruby from source and not using the centos rpm's. Not my preferred method of operation but it works.

the centos rpms that I used were:

irb-1.8.4-1.c4.x86_64.rpm rdoc-1.8.4-1.c4.x86_64.rpm ri-1.8.4-1.c4.x86_64.rpm ruby-1.8.4-1.c4.x86_64.rpm ruby-devel-1.8.4-1.c4.x86_64.rpm ruby-docs-1.8.4-1.c4.x86_64.rpm ruby-libs-1.8.4-1.c4.x86_64.rpm ruby-mode-1.8.4-1.c4.x86_64.rpm ruby-tcltk-1.8.4-1.c4.x86_64.rpm

Maybe this can save some others the same trouble.

I was able to get past this by only recompiling ruby from source and not using the centos rpm's. Not my preferred method of operation but it works.

the centos rpms that I used were:

irb-1.8.4-1.c4.x86_64.rpm rdoc-1.8.4-1.c4.x86_64.rpm ri-1.8.4-1.c4.x86_64.rpm ruby-1.8.4-1.c4.x86_64.rpm ruby-devel-1.8.4-1.c4.x86_64.rpm ruby-docs-1.8.4-1.c4.x86_64.rpm ruby-libs-1.8.4-1.c4.x86_64.rpm ruby-mode-1.8.4-1.c4.x86_64.rpm ruby-tcltk-1.8.4-1.c4.x86_64.rpm

Maybe this can save some others the same trouble.