I’ve been running Rails 2.0.2 with Ruby 1.8.6 for the last six
months. I developed an application that runs fine on two different
servers – or at least, it used to.
I used Mongrel as a development server, but requirements called for
using Apache for a production deployment. I found Phusion Passenger
(mod_rails) and decided to give it a try.
I decided to update my rubygems to the latest version before
installing Passenger, so I did a “gem update --system”. A slew of
gems were updated (at least six or eight). All seemed fine until I
tried actually using my application again
Now the application crashes when it tries to access any of my named
routes. Rubygems cores, usually with a segmentation fault, generating
messages like this in /var/log/httpd/error_log:
*** glibc detected *** Rails: /var/www/rails/wave: double free or
corruption (out): 0x0a188d90 ***
Premature end of script headers: users, referer: http://shrimp/wave
url_helper.rb:488: [BUG] Segmentation fault
template_error.rb:78: [BUG] Segmentation fault
I tried using both mod_rails and mongrel to serve the application, but
both give the same results.
In hindsight I should have done a backup before the update, but my
hindsight seems a lot better than my foresight lately.
So now we finally come to my question: How do I undo the mess I
made? Is there a log somewhere that tells me specifically which
versions of which gems were updated, and is there an easy way to roll
back to a specific version?
Even better would be if someone else has seen the same problem and
knows of a patch or update that would allow me to use the updated
gems… but I figure that’s probably asking too much.
One more thing: My development environment is Fedora Core 8 and I
have the yum updatesd service running. I’ve noted at least two Ruby
“security” updates over the last week, so I’m also wondering if
anything pushed down via that route might be causing (or at least
contributing to) my problems…