M
mwlang88
Hello, all
I have successfully compiled and install Ruby 1.9.1.rc2 on 32-bit
Ubuntu Intrepid.
I have also managed to compile the Ruby MySQL 2.8 native bindings.
I eventually got everything going to run Rails 2.2.2 on Ruby 1.9 and
connecting to a MySQL database with the native drivers. However, when
I hit a page that then hits the databsae, the Webrick 1.3.1 server
simply bombs with an immediate exit reporting the following:
$ script/server
=> Booting WEBrick...
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.2.2/lib/
action_controller/routing/segments.rb:6: warning: encoding option is
ignored - N
=> Rails 2.2.2 application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2009-01-29 13:57:32] INFO WEBrick 1.3.1
[2009-01-29 13:57:32] INFO ruby 1.9.1 (2009-01-20) [i686-linux]
[2009-01-29 13:57:32] INFO WEBrick::HTTPServer#start: pid=17957
port=3000
ruby: symbol lookup error: /usr/local/lib/ruby/site_ruby/1.9.1/i686-
linux/mysql.so: undefined symbol: rb_thread_stop_timer
Figuring I simply forgot to compile in thread support, I went back and
recompiled Ruby 1.9 with --enable-pthread, recompiled the mysql
extensions and reinstalled everything. Still getting the same error,
I decided to grep the Ruby code and found a rb_thread_stop_timer_thread
(), but no rb_thread_stop_timer() could be found anywhere in the Ruby
code base!
So what's the deal? Where does rb_stop_thread_timer() come from?
One other thing I would like to mention, I commented out the
rb_start_thread_timer() and rb_stop_thread_timer() calls in the
mysql.c file and recompiled and reinstalled. To my utter surprise, I
had a functioning Rails application hitting a mysql database and
returning rendered pages with data! So, regardless of where
rb_stop_thread_timer() comes from, is it safe to remove these thread
guards from the mysql extension? If not safe, then I'm stuck with
either finding the providers for rb_thread_stop_timer() or changing to
what may be the new calls, rb_thread_stop_timer_thread(), but I'm no
expert with 'C' so can't make a sound judgment call myself.
Michael
I have successfully compiled and install Ruby 1.9.1.rc2 on 32-bit
Ubuntu Intrepid.
I have also managed to compile the Ruby MySQL 2.8 native bindings.
I eventually got everything going to run Rails 2.2.2 on Ruby 1.9 and
connecting to a MySQL database with the native drivers. However, when
I hit a page that then hits the databsae, the Webrick 1.3.1 server
simply bombs with an immediate exit reporting the following:
$ script/server
=> Booting WEBrick...
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.2.2/lib/
action_controller/routing/segments.rb:6: warning: encoding option is
ignored - N
=> Rails 2.2.2 application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2009-01-29 13:57:32] INFO WEBrick 1.3.1
[2009-01-29 13:57:32] INFO ruby 1.9.1 (2009-01-20) [i686-linux]
[2009-01-29 13:57:32] INFO WEBrick::HTTPServer#start: pid=17957
port=3000
ruby: symbol lookup error: /usr/local/lib/ruby/site_ruby/1.9.1/i686-
linux/mysql.so: undefined symbol: rb_thread_stop_timer
Figuring I simply forgot to compile in thread support, I went back and
recompiled Ruby 1.9 with --enable-pthread, recompiled the mysql
extensions and reinstalled everything. Still getting the same error,
I decided to grep the Ruby code and found a rb_thread_stop_timer_thread
(), but no rb_thread_stop_timer() could be found anywhere in the Ruby
code base!
So what's the deal? Where does rb_stop_thread_timer() come from?
One other thing I would like to mention, I commented out the
rb_start_thread_timer() and rb_stop_thread_timer() calls in the
mysql.c file and recompiled and reinstalled. To my utter surprise, I
had a functioning Rails application hitting a mysql database and
returning rendered pages with data! So, regardless of where
rb_stop_thread_timer() comes from, is it safe to remove these thread
guards from the mysql extension? If not safe, then I'm stuck with
either finding the providers for rb_thread_stop_timer() or changing to
what may be the new calls, rb_thread_stop_timer_thread(), but I'm no
expert with 'C' so can't make a sound judgment call myself.
Michael