Issue #211 has been updated by Brian Candler.


I got this exact error too. Reproducing it was a bit awkward, but I think I can confirm the problem and that it has been fixed.
In my case, I was finding that in my replica live environment:

* "script/server" worked fine
* "mongrel_rails start -P tmp/pids/mongrel.pid" usually demonstrated the bug: "wrong argument type FalseClass (expected Proc)"
* "mongrel_rails" by itself caused a segfault:

 $ mongrel_rails start
 ** Starting Mongrel listening at 0.0.0.0:3000
 ** Starting Rails with development environment...
 ** Rails loaded.
 ** Loading any Rails specific GemPlugins
 ** Signals ready.  TERM => stop.  USR2 => restart.  INT => stop (no restart).
 ** Rails signals registered.  HUP => reload (without restart).  It might not work well.
 ** Mongrel 1.1.4 available at 0.0.0.0:3000
 ** Use CTRL-C to stop.
 Segmentation fault

And I've also seen:

 $ mongrel_rails start -P tmp/pids/mongrel.pid
 ** Starting Mongrel listening at 0.0.0.0:3000
 ** Starting Rails with development environment...
 ** Rails loaded.
 ** Loading any Rails specific GemPlugins
 ** Signals ready.  TERM => stop.  USR2 => restart.  INT => stop (no restart).
 ** Rails signals registered.  HUP => reload (without restart).  It might not work well.
 ** Mongrel 1.1.4 available at 0.0.0.0:3000
 ** Use CTRL-C to stop.
 *** glibc detected *** corrupted double-linked list: 0x00715858 ***
 Aborted

This is RHEL4 with p230 built from the Fedora package "ruby-1.8.6.230-2.fc10.src.rpm", which includes a few patches of its own, including "ruby-1.8.6.230-string-str_buf_cat.patch"

So to replicate this, on a test box (Ubuntu 6.06.1) I made two completely fresh vanilla installations compiled from svn, tags v1_8_6_230 and v1_8_6_264

 ---------------- how ruby was installed ------------
 svn co http://svn.ruby-lang.org/repos/ruby/tags/v1_8_6_230 tags/v1_8_6_230
 cd tags/v1_8_6_230
 autoconf
 ./configure --prefix=/usr/local/ruby-1.8.6p230
 make
 sudo make install
 wget 'http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz'
 rm -rf rubygems-1.2.0
 tar -xvzf rubygems-1.2.0.tgz
 cd rubygems-1.2.0
 sudo /usr/local/ruby-1.8.6p230/bin/ruby setup.rb
 sudo /usr/local/ruby-1.8.6p230/bin/gem install rails --version "2.0.2" --no-rdoc --no-ri
 # Rails requires a database layer (is there a way to disable models?)
 sudo /usr/local/ruby-1.8.6p230/bin/gem install sqlite3-ruby --no-rdoc --no-ri
 ----------------------------------------------------
(repeat for p264)

 ---------------- sample rails app ----------------
 rails foo
 cd foo
 script/generate controller bar
 cat <<EOF >app/views/bar/index.html.erb
 <% form_tag(:action=>:index) do %>
 <% end %>
 EOF
 /usr/local/ruby-1.8.6p230/bin/ruby script/server
 # In another console window
 lynx http://localhost:3000/bar/
 --------------------------------------------------

I had to hit the server several times, but after 4 or 5 tries under p230 this caused a crash:

 $ /usr/local/ruby-1.8.6p230/bin/ruby script/server
 => Booting WEBrick...
 => Rails application started on http://0.0.0.0:3000
 => Ctrl-C to shutdown server; call with --help for options
 [2008-07-02 13:22:39] INFO  WEBrick 1.3.1
 [2008-07-02 13:22:39] INFO  ruby 1.8.6 (2008-06-20) [i686-linux]
 [2008-07-02 13:22:39] INFO  WEBrick::HTTPServer#start: pid=2634 port=3000
 127.0.0.1 - - [02/Jul/2008:13:22:41 BST] "GET /bar HTTP/1.1" 200 179 - -> /bar
 127.0.0.1 - - [02/Jul/2008:13:22:43 BST] "GET /bar HTTP/1.1" 200 179 - -> /bar
 127.0.0.1 - - [02/Jul/2008:13:22:43 BST] "GET /bar HTTP/1.1" 200 179 - -> /bar
 127.0.0.1 - - [02/Jul/2008:13:22:44 BST] "GET /bar HTTP/1.1" 200 179 - -> /bar
 *** glibc detected *** corrupted double-linked list: 0xb7f5b358 ***
 Aborted

With p264, I could not crash it (tried 30 hits)

Trying again with mongrel instead of webrick:

 sudo /usr/local/ruby-1.8.6p230/bin/gem install mongrel --no-rdoc --no-ri
 /usr/local/ruby-1.8.6p230/bin/ruby script/server    # option 1
 /usr/local/ruby-1.8.6p230/bin/mongrel_rails start   # option 2

After 4 or 5 hits, mongrel (1.1.5) under p230 crashed (run either as option 1 or option 2). But p264 didn't crash even after 40 hits.

In conclusion: whilst I haven't been able to replicate exactly the problem "wrong argument type String (expected Proc)" using a clean build, I could replicate crashes reliably, and these have gone away in the recent 1.8.6 tree.

Aside: in order to make a new RPM package for my live environment, it would be helpful if there could be a new 1.8.6 tarball release...

----------------------------------------
http://redmine.ruby-lang.org/issues/show/211

----------------------------------------
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://redmine.ruby-lang.org/my/account