[Closed] [ruby-core:59728] Ruby 2.1.0 in Production: known bugs and patches

Issue #9470 has been updated by Yui NARUSE.

Status changed from Open to Closed

All bug fixes are merged in r44847

Backport #9470: [ruby-core:59728] Ruby 2.1.0 in Production: known bugs
and patches

  • Author: Hiroshi SHIBATA
  • Status: Closed
  • Priority: Normal
  • Assignee:
  • Category:
  • Target version:
  • ruby -v: 2.1.0

reminder memo: copy from ruby-core:59728. original author is tmm1

Last week, we upgraded the github.com rails app to ruby 2.1.0 in 
While testing the new build for rollout, we ran into a number of bugs. 
Most of
these have been fixed on trunk already, but I've documented them below 
to help
anyone else who might be testing ruby 2.1 in production.

@naruse I think we should backport these patches to the ruby_2_1 branch 
release 2.1.1 sooner rather than later, as some of the bugs are quite 
I'm happy to offer any assistance I can to expedite this process.

- Struct#send(:setter=, rhs) does not return rhs
  #9353 (r44501)
  breaks the faraday gem

- Array#uniq behavior change
  #9340 (r44512)
  affects the sass gem

- Timeout behavior change
  #9354 (r44517, r44518, r44519)
  #9380 (r44523)
  breaks the faraday gem

- [BUG] assertion failure in socket.c
  #9352 (r44490, r44496)
  breaks the excon gem

- segfault in method() usage
  #9334, #9313, #9310, #9326, #9337
  #9315 (r44455, r44458, r44510, r44527, r44552, r44553)
  segv inside activesupport4 and other gems

- Hash lookup with #hash and #eql broken
  #9381 (r44525, r44534, r44537)

- bigdecimal division issue
  affects some payment processing gems
  workaround patch by @phasis:

- SizedQueue not working
  #9302, #9343, #9396
  patches by @normalperson:

In addition to the bugfix patches above, we're running the following
performance patches in production. These have proven quite stable in our
environment, so I encourage you to try them if you're running a large 
ruby app.

- funny-falcon's st.c density patch

- funny-falcon's st.c pool allocator

- funny-falcon's method cache patch
  proposed for trunk in #9262

- optimized Hash#[] and Hash#[]= with string literals
  merged to trunk in #9382 (r44551)

Aside from the bugs above, our upgrade to 2.1 was very smooth. I'm happy 
report that github.com is now running faster (and with less GC overhead) 
ever before.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs