Actions
Bug #19906
closedfix kwarg memory leak
Bug #19906:
fix kwarg memory leak
Description
GitHub PR: https://github.com/ruby/ruby/pull/8556
ci info tracks kwargs and which are shared across aliases
30.times do
100_000.times do
def foo(k:); yield; end
alias bar foo
undef foo
end
puts `ps -o rss= -p #{$$}`
end
before:
30364
45120
59700
73932
88512
102680
116884
130884
145308
159688
174468
188680
203016
216908
231568
246096
260592
274900
289168
303420
317620
331956
346148
360708
374880
389172
403472
417824
432016
446040
460196
474604
489152
503248
517504
531944
546228
560520
574760
589108
after:
Updated by nobu (Nobuyoshi Nakada) almost 3 years ago
I can't reproduce it on {arm64,x86_64}-{darwin,linux}.
Updated by HParker (Adam Hess) almost 3 years ago
- Status changed from Open to Closed
Applied in changeset git|c74dc8b4af4ef1b32f65587f083fbeba4ca186fa.
Use reference counting to avoid memory leak in kwargs
Tracks other callinfo that references the same kwargs and frees them when all references are cleared.
[bug #19906]
Co-authored-by: Peter Zhu peter@peterzhu.ca
Updated by HParker (Adam Hess) almost 3 years ago
Updated by peterzhu2118 (Peter Zhu) almost 3 years ago
- Related to Bug #18553: Memory leak on compiling method call with kwargs added
Actions