Project

General

Profile

Actions

Bug #19903

closed

Fix memory leak in generating and loading iseq

Added by HParker (Adam Hess) 8 months ago. Updated 7 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:114897]

Description

PR: https://github.com/ruby/ruby/pull/8512

Reproduction:

10.times do
  100_000.times do
    RubyVM::InstructionSequence.load_from_binary(RubyVM::InstructionSequence.compile("def foo(bar:); end; foo(bar: :baz)").to_binary)
  end
  puts `ps -o rss= -p #{$$}`
end

before:

39636
60756
82140
103260
124380
145764
166884
188004
209388
230508

after:

25184
31784
38648
45248
51848
58712
65312
71912
78776
85376
Actions #1

Updated by peterzhu2118 (Peter Zhu) 8 months ago

  • Backport changed from 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN to 3.0: UNKNOWN, 3.1: REQUIRED, 3.2: REQUIRED
Actions #2

Updated by Anonymous 8 months ago

  • Status changed from Open to Closed

Applied in changeset git|ef59175a68c448fe334125824b477a9e1d5629bc.


fix iseq kwargs table and original_iseq leaks

[bug #19903]

Co-authored-by: Peter Zhu

Updated by nagachika (Tomoyuki Chikanaga) 7 months ago

  • Backport changed from 3.0: UNKNOWN, 3.1: REQUIRED, 3.2: REQUIRED to 3.0: UNKNOWN, 3.1: REQUIRED, 3.2: DONE

ruby_3_2 128d8728d39c2da21e5433c7af169f73e18fd133 merged revision(s) ef59175a68c448fe334125824b477a9e1d5629bc.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0