[#70257] [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI — ko1@...

Issue #11420 has been reported by Koichi Sasada.

11 messages 2015/08/06

[ruby-core:70603] [Ruby trunk - Bug #11490] [Open] Allocation tracer sometimes attributes allocations to the wrong source file/line

From: godfreykfc@...
Date: 2015-08-27 07:38:55 UTC
List: ruby-core #70603
Issue #11490 has been reported by Godfrey Chan.

----------------------------------------
Bug #11490: Allocation tracer sometimes attributes allocations to the wrong source file/line
https://bugs.ruby-lang.org/issues/11490

* Author: Godfrey Chan
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
See the reproduction script in https://gist.github.com/chancancode/dc175e702c02cdfa5ffb

This was originally brought to my attention via https://github.com/skylightio/skylight-ruby/issues/36

As you can see in the Github ticket, we overwrote `Kernel#require` and was incorrectly blamed for allocating a lot of objects/memory. I checked the source and saw that the file/line info is filled by the [last Ruby-land control frame](https://github.com/ruby/ruby/blob/7cf523c7db67c22ffc09b38a9c5bea057f578db2/vm_trace.c#L752), so I was almost ready to accept this as an unfortunate artifact that cannot be fixed.

However, when I made the standalone reproduction script to test my theory, I noticed that it actually gets it right sometimes (the lines that reports `nokogiri.bundle:0` instead of `allocation_tracker_bug.rb:11`), so it seems like something else is going on here.

By the way, since RubyGems overwrites `Kernel#require`, even without any other third-party libraries loaded, you can already observe allocation tracer attributing a lot of allocations to RubyGem's `kernel_require.rb` out of the box.

---Files--------------------------------
allocation_tracker_bug.rb (786 Bytes)


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

In This Thread

Prev Next