Project

General

Profile

Actions

Bug #11490

closed

Allocation tracer sometimes attributes allocations to the wrong source file/line

Added by chancancode (Godfrey Chan) over 8 years ago. Updated over 4 years ago.

Status:
Closed
Target version:
-
[ruby-core:<unknown>]

Description

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, 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) allocation_tracker_bug.rb chancancode (Godfrey Chan), 08/27/2015 07:38 AM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0