Actions
Bug #19896
closedRuby method refinement memory leak
Description
GitHub pull request: https://github.com/ruby/ruby/pull/8487
When method redefinitions happen, sometimes the final definition does not get cleaned up,
Reproducable with the same script from: https://bugs.ruby-lang.org/issues/19894
10.times do
20_000.times do
$c = Class.new do
def foo; end
end
$m = Module.new do
refine $c do
def foo; end
end
end
Class.new do
using $m
def initialize
o = $c.new
o.method(:foo).unbind
end
end.new
end
puts `ps -o rss= -p #{$$}`
end
before:
19792
20944
22224
23504
24784
26064
27344
28624
29776
31056
after:
18560
18560
18560
18560
18560
18560
18560
18560
18560
18560
Actions
Like0
Like0Like0Like0