Sinatra:Base rackup: rubyeventmachine.bundle: [BUG] Segmentation fault ruby 1.8.7
I was just saying yesterday that I haven’t run into any strange errors lately. I guess I forgot to knock on wood!
Today I started a brand new sinatra app. I haven’t written my own sinatra app from scratch before, so I’m copying pieces from some other apps that I have cloned on my machine. Here’s what my code looked like:
# Gemfile
source :rubygems
gem 'sinatra'
gem 'thin'
# salmon_test.rb
require 'sinatra'
class SalmonTest < Sinatra::Base
get "/" do
"hello"
end
end
# config.ru
require './salmon_test'
run SalmonTest
Then I bundled and ended up with this Gemfile.lock:
GEM
remote: http://rubygems.org/
specs:
daemons (1.1.8)
eventmachine (0.12.10)
rack (1.4.1)
rack-protection (1.2.0)
rack
sinatra (1.3.2)
rack (~> 1.3, >= 1.3.6)
rack-protection (~> 1.2)
tilt (~> 1.3, >= 1.3.3)
thin (1.3.1)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
tilt (1.3.3)
PLATFORMS
ruby
DEPENDENCIES
sinatra
thin
Also note that I’m using rvm with ruby 1.9.2-p290 and a brand new gemset for this project.
When I ran rackup
to start the server, I got this error message:
$ rackup
~/.rvm/gems/ruby-1.9.2-p290@salmon_test/gems/eventmachine-0.12.10/lib/rubyeventmachine.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin10.0]
Abort trap
Why is it doing something with 1.8.7??? Who knows! Right after that I did an rvm list
:
$ rvm list
rvm rubies
ruby-1.8.7-p358 [ i686 ]
=* ruby-1.9.2-p290 [ x86_64 ]
ruby-1.9.2-p318 [ x86_64 ]
ruby-1.9.3-p125 [ x86_64 ]
Yep, using 1.9.2…
The one thing I changed in the code before running rackup
again was in salmon_test.rb:
- require 'sinatra'
+ require 'sinatra/base'
Then the next time I ran rackup everything worked fine. shrug Hope this helps someone else.