Memory Leaks in GetText for Ruby on Rails

posted in: gettext, rails, ruby | 0

Version 1.90.0 of GetText for Ruby has quite some memory leaks in its Rails support files. In my case, the memory Mongrel used increased by 1 MB with each request it served… Quite amazing that you don’t really find someone else having the problem… Well there’s at least a bug report on rubyforge…

Monkey-patching gettext.rb with the following code made things quite more relaxed:

  def bound_target(klass = self) # :nodoc:
    ret = nil
    if klass.kind_of? Class or klass.kind_of? Module
      ret = klass
    else
      ret = klass.class
    end
    ret = GetText if ret.name =~ /^\#<|^$/
    ret
  end

The memory usage grows extremly slow now and is acceptable for our current web site traffic.

Plus: It helps to "every now and then" call GetText.clear_cache - which I don't like because you have to do it "manually". It would be much better if GetText did its own garbage collection ...