Ruby DBD MySQL seg faults under mod_ruby

M

matthew c. mead

I have an rhtml website using mysql as a backend working
just fine on a standalone FreeBSD 5.1 system, but it fails
to work in a jail under FreeBSD 4.8. I get segfaults inside
ruby when I try to use the dbi interface to access retrieved
rows. Additionally, when I run the code standalone from the
command line invoking it with ruby, everything works properly.

Can anyone point me to how I should resolve the problem?

Here are the particulars:

The error message in httpd's error_log is:

/usr/local/lib/ruby/site_ruby/1.6/DBD/Mysql/Mysql.rb:465: [BUG] Segmentation fault
ruby 1.6.8 (2003-10-15) [i386-freebsd4]

Pertinent software:
apache_1.3.28
mod_ruby-1.1.2
eruby-1.0.5
ruby-1.6.8.2003.10.15
ruby-aspectr-0.3.5
ruby-bdb1-0.2.1
ruby-dbd_mysql-0.0.21
ruby-dbi-0.0.21
ruby-mysql-2.4.5
ruby-shim-ruby18-1.8.1.p3


THANKS!



-matt
 
M

matthew c. mead

I know. Bad form to respond to myself.

According to gdb, this is the stack trace of where things fail.
Can anyone help me make sense of why this would fail under
FreeBSD 4.8 in a jail vs. working perfectly under FreeBSD 5.1
with NO jail?

Thanks!

#0 0x2847ba39 in rb_str_new2 () from /usr/local/lib/libruby.so.16
#1 0x2847baa6 in rb_tainted_str_new2 () from /usr/local/lib/libruby.so.16
#2 0x28635c55 in make_field_obj ()
from /usr/local/lib/ruby/site_ruby/1.6/i386-freebsd4/mysql.so
#3 0x286371c9 in fetch_fields ()
from /usr/local/lib/ruby/site_ruby/1.6/i386-freebsd4/mysql.so
#4 0x2842993d in call_cfunc () from /usr/local/lib/libruby.so.16
#5 0x28429ea1 in rb_call0 () from /usr/local/lib/libruby.so.16
#6 0x2842a6fe in rb_call () from /usr/local/lib/libruby.so.16
#7 0x28424fd4 in rb_eval () from /usr/local/lib/libruby.so.16
#8 0x28424b15 in rb_eval () from /usr/local/lib/libruby.so.16
#9 0x28423efe in rb_eval () from /usr/local/lib/libruby.so.16
#10 0x2842349e in rb_eval () from /usr/local/lib/libruby.so.16


-matt




I have an rhtml website using mysql as a backend working
just fine on a standalone FreeBSD 5.1 system, but it fails
to work in a jail under FreeBSD 4.8. I get segfaults inside
ruby when I try to use the dbi interface to access retrieved
rows. Additionally, when I run the code standalone from the
command line invoking it with ruby, everything works properly.

Can anyone point me to how I should resolve the problem?

Here are the particulars:

The error message in httpd's error_log is:

/usr/local/lib/ruby/site_ruby/1.6/DBD/Mysql/Mysql.rb:465: [BUG] Segmentation fault
ruby 1.6.8 (2003-10-15) [i386-freebsd4]

Pertinent software:
apache_1.3.28
mod_ruby-1.1.2
eruby-1.0.5
ruby-1.6.8.2003.10.15
ruby-aspectr-0.3.5
ruby-bdb1-0.2.1
ruby-dbd_mysql-0.0.21
ruby-dbi-0.0.21
ruby-mysql-2.4.5
ruby-shim-ruby18-1.8.1.p3


THANKS!



-matt
 
M

matthew c. mead

For anyone going to take a look at this, I've found it fails
under FreeBSD 4.8 whether it's running in a jail or not.

Is there an easy way to build all this (apache, ruby-mysql,
mysql client libs, etc.) debug and run it under gdb so I can get
useful information? It's been quite a few years since I've
debugged with gdb.

Thanks in advance for any help.


-matt

I know. Bad form to respond to myself.

According to gdb, this is the stack trace of where things fail.
Can anyone help me make sense of why this would fail under
FreeBSD 4.8 in a jail vs. working perfectly under FreeBSD 5.1
with NO jail?

Thanks!

#0 0x2847ba39 in rb_str_new2 () from /usr/local/lib/libruby.so.16
#1 0x2847baa6 in rb_tainted_str_new2 () from /usr/local/lib/libruby.so.16
#2 0x28635c55 in make_field_obj ()
from /usr/local/lib/ruby/site_ruby/1.6/i386-freebsd4/mysql.so
#3 0x286371c9 in fetch_fields ()
from /usr/local/lib/ruby/site_ruby/1.6/i386-freebsd4/mysql.so
#4 0x2842993d in call_cfunc () from /usr/local/lib/libruby.so.16
#5 0x28429ea1 in rb_call0 () from /usr/local/lib/libruby.so.16
#6 0x2842a6fe in rb_call () from /usr/local/lib/libruby.so.16
#7 0x28424fd4 in rb_eval () from /usr/local/lib/libruby.so.16
#8 0x28424b15 in rb_eval () from /usr/local/lib/libruby.so.16
#9 0x28423efe in rb_eval () from /usr/local/lib/libruby.so.16
#10 0x2842349e in rb_eval () from /usr/local/lib/libruby.so.16


-matt




I have an rhtml website using mysql as a backend working
just fine on a standalone FreeBSD 5.1 system, but it fails
to work in a jail under FreeBSD 4.8. I get segfaults inside
ruby when I try to use the dbi interface to access retrieved
rows. Additionally, when I run the code standalone from the
command line invoking it with ruby, everything works properly.

Can anyone point me to how I should resolve the problem?

Here are the particulars:

The error message in httpd's error_log is:

/usr/local/lib/ruby/site_ruby/1.6/DBD/Mysql/Mysql.rb:465: [BUG] Segmentation fault
ruby 1.6.8 (2003-10-15) [i386-freebsd4]

Pertinent software:
apache_1.3.28
mod_ruby-1.1.2
eruby-1.0.5
ruby-1.6.8.2003.10.15
ruby-aspectr-0.3.5
ruby-bdb1-0.2.1
ruby-dbd_mysql-0.0.21
ruby-dbi-0.0.21
ruby-mysql-2.4.5
ruby-shim-ruby18-1.8.1.p3


THANKS!



-matt
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top