Phusion white papers Phusion overview

Ruby Enterprise Edition 1.8.7-2011.01 released

By Hongli Lai on February 12th, 2011

What is Ruby Enterprise Edition?

Ruby Enterprise Edition (REE) is a server-oriented distribution of the official Ruby interpreter, and includes various additional enhancements, such as:

REE can be easily installed in parallel to your existing Ruby interpreter, allowing you switch to REE with minimal hassle or risk. REE has been out for several years now and is already used by many high-profile websites and organizations, such as New York Times, Twitter, Shopify and 37signals.

“We switched to enterprise ruby to get the full benefit of the [copy-on-write] memory characteristics and we can absolutely confirm the memory savings of 30% some others have reported. This is many thousand dollars of savings even at today’s hardware prices.”
Tobias Lütke (Shopify)

Ruby Enterprise Edition is 100% open source.

Changes

Upgraded to Ruby 1.8.7-p330
The previous REE release was based on 1.8.7-p249.
Upgraded to RubyGems 1.5.2
The previous REE release included RubyGems 1.3.7.

Please note that Rails versions older than about 2.3.8 are not compatible with RubyGems 1.5. So if you find your Rails apps unable to start after upgrading REE, you know why. There are two things you can do:

  • Manually downgrade RubyGems.
  • Upgrade your apps to Rails 2.3.11 or 3.0.4. We recommend this choice because of the recent security fixes in Rails.
Upgraded tcmalloc to version 1.7
The previous REE release included tcmalloc 1.4. Version 1.7 also supports OS X Snow Leopard, so tcmalloc support in REE is now enabled by default on OS X.
Fix backport: zlib garbage collection problem (fixes ‘bundle install’ problems)
We’ve received a lot of reports about ‘bundle install’ sometimes failing for mysterious reasons. It reports something along the lines of:

tar_input.rb:49:in `initialize': not in gzip format (Zlib::GzipFile::Error)

The reason behind this problem has long remained elusive because of the difficulty to reproduce it, until Aman Gupta found a lead. It turned out to be a garbage collection bug in the Ruby zlib extension. The bug is even present in the latest upstream Ruby 1.8.7 release (p330), though not in Ruby 1.9. We’ve backported the fix to 1.8 and included it REE. Issue #45.

Fix backport: mutex deadlock detection
Multithreaded programs can sometimes crash with a mysterious “deadlock detected – mutual join” error message even if the code is correct (example). This is apparently a bug in Ruby’s Mutex implementation, but the fix is not included in the latest upstream Ruby 1.8.7 release (p330). We’ve backported the fix and included it in REE. Issue #46.
Fixed –dont-install-useful-gems in the installer
The installer used to crash when this flag is passed. This has now been fixed. Issue #42.
Fixed memory leaks in the zero-copy context switching patch
Fix contributed by Kurt Stephens. Issue #57.

Download & upgrade

To install Ruby Enterprise Edition, please visit the download page. To upgrade from a previous version, simply install into the same prefix that you installed to last time. Please also refer to the documentation for upgrade instructions.

  • Nathan

    What of this is included in 1.9.2? If none or some isn’t why not?

  • http://www.jrpass.com Simon

    for the “fixes ‘bundle install’ problems”, someone deserves a medal.

    Thanks for all the great releases!

  • http://vitobotta.com Vito Botta

    How big is the difference in terms of performance between this release of REE and 1.9.2?

    Thanks a lot BTW!

  • Karuna Murti

    Download page and rubyforge download page still showing 2010.02 version.
    Should point it to github :)

  • http://www.phusion.nl/ Hongli Lai

    @Karuna: the rubyenterpriseedition.com download page correctly points to the 2011.01 version. Try pressing Refresh in your browser.
    And we don’t host the files on RubyForge anymore because they have too much down time lately.

  • andy bray

    Thanks so much for the update. I am starting to move a project to 1.9.2, any plans for REE 1.9.2?

  • http://jackdempsey.me Jack Dempsey

    +1 to the REE 1.9.2 question.

  • Pingback: Podcast – Episódio #1 — Simples Ideias. Por Nando Vieira.

  • http://www.obsidianportal.com Ryan

    Thanks for the update! Not all of us can update to 1.9.2 just yet, so we appreciate the love still given to 1.8!

    Ryan

  • http://www.enterprise-rails.de Julian Fischer

    We’re also looking forward to 1.9.x but still stick to 1.8.x. So thank you a lot!

  • Duane Tharp

    I upgraded to the 2011.01 version of REE – have a 2.3.5 rails app – am getting this error. If I switch back to the 2010 version of REE, no errors. Anyone else?

    (in /Users/duanetharp/streamstep/reallydelete)
    rake aborted!
    undefined local variable or method `version_requirements’ for #

    (See full trace by running task with –trace)
    macpro:duanetharp reallydelete $

  • http://wndx.posterous.com Lori Olson

    Any chance there will be another release in the wake of these security issues?

  • http://codedcultures.org z1ck0

    since there is a vulnerability in p330 (fileutils) – will you release 2011.2 based on p334 soon?
    see http://www.ruby-lang.org/en/news/2011/02/18/fileutils-is-vulnerable-to-symlink-race-attacks/
    regards, z1ck0

  • http://www.phusion.nl/ Hongli Lai

    @Duane: Read the release notes about RubyGems.

  • Dave Brown

    Looks like a bug exists with cookie parsing. Cookies now seem to have a trailing quote which wasn’t present in the old REE 2010 version. Basically every cookie now has 1 extra character at the end which is a double quotation.

  • Pingback: Pouco de Tudo » Podcast – Episódio #1