[ruby-core:112172] [Ruby master Bug#19398] Memory leak in WeakMap

Issue #19398 has been reported by peterzhu2118 (Peter Zhu). ---------------------------------------- Bug #19398: Memory leak in WeakMap https://bugs.ruby-lang.org/issues/19398 * Author: peterzhu2118 (Peter Zhu) * Status: Open * Priority: Normal * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Pull request: https://github.com/ruby/ruby/pull/7223 There's a memory leak in ObjectSpace::WeakMap due to not freeing the `struct weakmap`. It can be seen in the following script: ```ruby 100.times do 10000.times do ObjectSpace::WeakMap.new end # Output the Resident Set Size (memory usage, in KB) of the current Ruby process puts `ps -o rss= -p #{$$}` end ``` This is the memory usage graph before and after the patch:  ---Files-------------------------------- chart.png (26.9 KB) -- https://bugs.ruby-lang.org/

Issue #19398 has been updated by naruse (Yui NARUSE). Backport changed from 2.7: REQUIRED, 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED to 2.7: REQUIRED, 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE ruby_3_2 3426ebd0489654f951a8b92efaf5e72b9f43efab merged revision(s) c6f84e918943a0bf8db6fee556fc53180d257510. ---------------------------------------- Bug #19398: Memory leak in WeakMap https://bugs.ruby-lang.org/issues/19398#change-101670 * Author: peterzhu2118 (Peter Zhu) * Status: Closed * Priority: Normal * Backport: 2.7: REQUIRED, 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE ---------------------------------------- Pull request: https://github.com/ruby/ruby/pull/7223 There's a memory leak in ObjectSpace::WeakMap due to not freeing the `struct weakmap`. It can be seen in the following script: ```ruby 100.times do 10000.times do ObjectSpace::WeakMap.new end # Output the Resident Set Size (memory usage, in KB) of the current Ruby process puts `ps -o rss= -p #{$$}` end ``` This is the memory usage graph before and after the patch:  ---Files-------------------------------- chart.png (26.9 KB) -- https://bugs.ruby-lang.org/

Issue #19398 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 2.7: REQUIRED, 3.0: REQUIRED, 3.1: REQUIRED, 3.2: DONE to 2.7: REQUIRED, 3.0: REQUIRED, 3.1: DONE, 3.2: DONE ruby_3_1 0d00732d39de1e5ecce738260a1e49d8af52e12a merged revision(s) c6f84e918943a0bf8db6fee556fc53180d257510. ---------------------------------------- Bug #19398: Memory leak in WeakMap https://bugs.ruby-lang.org/issues/19398#change-102489 * Author: peterzhu2118 (Peter Zhu) * Status: Closed * Priority: Normal * Backport: 2.7: REQUIRED, 3.0: REQUIRED, 3.1: DONE, 3.2: DONE ---------------------------------------- Pull request: https://github.com/ruby/ruby/pull/7223 There's a memory leak in ObjectSpace::WeakMap due to not freeing the `struct weakmap`. It can be seen in the following script: ```ruby 100.times do 10000.times do ObjectSpace::WeakMap.new end # Output the Resident Set Size (memory usage, in KB) of the current Ruby process puts `ps -o rss= -p #{$$}` end ``` This is the memory usage graph before and after the patch:  ---Files-------------------------------- chart.png (26.9 KB) -- https://bugs.ruby-lang.org/
participants (3)
-
nagachika (Tomoyuki Chikanaga)
-
naruse (Yui NARUSE)
-
peterzhu2118 (Peter Zhu)