Project

General

Profile

Actions

Bug #1997

closed

memory leak on redefining method

Added by usa (Usaku NAKAMURA) about 15 years ago. Updated over 13 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 1.9.2dev (2009-08-26 trunk 24658) [i386-mswin32]
Backport:
[ruby-dev:39165]

Description

=begin
以下のスクリプトがメモリをどんどん食いつぶします。

loop do
class C
def foo
end
end
GC.start
end

vm_method.cのrb_add_method()を見たところ、TODOを直し忘れてるようです。
また、remove_methodでもメモリを解放してないので、同じようにメモリを食いつぶすことが出来そうです。

なかださんが修正を考えてくれているそうなので、アサインしときます

=end

Actions #1

Updated by nobu (Nobuyoshi Nakada) about 15 years ago

=begin
なかだです。

At Wed, 26 Aug 2009 15:30:50 +0900,
Usaku NAKAMURA wrote in [ruby-dev:39165]:

以下のスクリプトがメモリをどんどん食いつぶします。

loop do
class C
def foo
end
end
GC.start
end

vm_method.cのrb_add_method()を見たところ、TODOを直し忘れてるようです。
また、remove_methodでもメモリを解放してないので、同じようにメモリを食いつぶすことが出来そうです。

aliasの扱いがまずそうだったので、かなり大きくなってしまいました。

  • method_h (rb_method_definition_t): split from rb_method_entry_t.

http://gist.github.com/176200

--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦

=end

Actions #2

Updated by nobu (Nobuyoshi Nakada) about 15 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

=begin
Applied in changeset r24691.
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0