[ruby-core:65053] [ruby-trunk - Bug #10244] [Open] Garbage Collector not being triggered

From: michel.boaventura@...
Date: 2014-09-16 01:49:12 UTC
List: ruby-core #65053
Issue #10244 has been reported by Michel Boaventura.

----------------------------------------
Bug #10244: Garbage Collector not being triggered
https://bugs.ruby-lang.org/issues/10244

* Author: Michel Boaventura
* Status: Open
* Priority: Normal
* Assignee: 
* Category: core
* Target version: 
* ruby -v: ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
Hi all,

I'm trying to understand why this simple script doesn't trigger a single run of the GC and eats all memory:

```Ruby
require 'gdk3'

loop do
  Gdk::Pixbuf.new('foo.png')
end
```

Changing it just a little to print ```Ruby GC.stat[:count]``` shows a constant value always:

```Ruby
require 'gdk3'

i = 0
loop do
  i += 1
  Gdk::Pixbuf.new('foo.png')
  puts GC.stat[:count] if (i / 100).zero?
end
```
Moreover, if I manually run it, then the memory usage stays constant:

```Ruby
require 'gdk3'

loop do
  Gdk::Pixbuf.new('foo.png')
  GC.start
end
```

I understant that this is probably a gdk3 issue, but what is puzzling me is why GC isn't running automatically but if I start it manually everything works just fine.

Thank you!




-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next