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?

ebeard wrote:

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]

You can use GDB to find out more about this segfault:

$ gdb ruby

(gdb) run test/unit/survey_test.rb

(gdb) backtrace

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

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…

On Tue, 2006-09-26 at 17:13 +0000, ebeard wrote:

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 don’t use the x86_64 but rather the i386 versions but it would
probably be a good idea to feed this info back to Jim Perrin/CentOS who
packages this in centos plus (I think)

Craig

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.