[#70843] Re: [ruby-cvs:58952] hsbt:r51801 (trunk): * lib/rubygems: Update to RubyGems HEAD(fe61e4c112). — Eric Wong <normalperson@...>
hsbt@ruby-lang.org wrote:
3 messages
2015/09/17
[ruby-core:70643] [Ruby trunk - Bug #11490] [Feedback] Allocation tracer sometimes attributes allocations to the wrong source file/line
From:
ko1@...
Date:
2015-09-01 09:02:46 UTC
List:
ruby-core #70643
Issue #11490 has been updated by Koichi Sasada. Status changed from Open to Feedback Assignee set to Koichi Sasada I don't think "(VM internal):0" is useful. ---------------------------------------- Bug #11490: Allocation tracer sometimes attributes allocations to the wrong source file/line https://bugs.ruby-lang.org/issues/11490#change-54044 * Author: Godfrey Chan * Status: Feedback * Priority: Normal * Assignee: Koichi Sasada * 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/