[#114703] [Ruby master Bug#19875] Ruby 2.7 -> 3.1 Performance regression in String#count — "iz (Illia Zub) via ruby-core" <ruby-core@...>

Issue #19875 has been reported by iz (Illia Zub).

18 messages 2023/09/12

[#114774] [Ruby master Feature#19884] Make Safe Navigation Operator work on classes — "p8 (Petrik de Heus) via ruby-core" <ruby-core@...>

Issue #19884 has been reported by p8 (Petrik de Heus).

13 messages 2023/09/15

[#114796] [Ruby master Feature#19889] Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths — "sawa (Tsuyoshi Sawada) via ruby-core" <ruby-core@...>

Issue #19889 has been reported by sawa (Tsuyoshi Sawada).

6 messages 2023/09/18

[#114803] [Ruby master Bug#19890] File#realine(chomp: true) slower/more allocations than readline.chomp! — "segiddins (Samuel Giddins) via ruby-core" <ruby-core@...>

Issue #19890 has been reported by segiddins (Samuel Giddins).

12 messages 2023/09/18

[#114817] [Ruby master Bug#19892] Build failure with 8f1b688177 — "vo.x (Vit Ondruch) via ruby-core" <ruby-core@...>

Issue #19892 has been reported by vo.x (Vit Ondruch).

8 messages 2023/09/19

[#114915] [Ruby master Feature#19905] Introduce `Queue#peek` — "hi@... (Joao Fernandes) via ruby-core" <ruby-core@...>

Issue #19905 has been reported by hi@joaofernandes.me (Joao Fernandes).

8 messages 2023/09/28

[ruby-core:114826] [Ruby master Bug#19894] Memory leak in complemented method entries

From: "peterzhu2118 (Peter Zhu) via ruby-core" <ruby-core@...>
Date: 2023-09-20 00:58:00 UTC
List: ruby-core #114826
Issue #19894 has been reported by peterzhu2118 (Peter Zhu).

----------------------------------------
Bug #19894: Memory leak in complemented method entries
https://bugs.ruby-lang.org/issues/19894

* Author: peterzhu2118 (Peter Zhu)
* Status: Open
* Priority: Normal
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: REQUIRED
----------------------------------------
GitHub pull request: https://github.com/ruby/ruby/pull/8481

When a copy of a complemented method entry is created, there are two issues:

1. IMEMO_FL_USER3 is not copied, so the complemented status is not copied over.
2. In rb_method_entry_clone we increment both alias_count and complemented_count. However, when we free the method entry in rb_method_definition_release, we only decrement one of the two counters, resulting in the rb_method_definition_t being leaked.

The following script reproduces this issue:

```ruby
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 this fix:

```
 17328
 19248
 21408
 23296
 25600
 27408
 29424
 31520
 33728
 35664
```

After this fix:

```
 16240
 17680
 18800
 19744
 20640
 21840
 22896
 24336
 25280
 26096
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/

In This Thread

Prev Next