Status: New
Owner: ----

New issue 2471 by [email protected]: Regression: Bogus retaining paths in a heap snapshot
http://code.google.com/p/v8/issues/detail?id=2471

Affected Chromium versions:
Chromium tip of tree 26.0.1377.0 (175320), contains V8 3.16.2
Chrome 25.0.1364.5 dev

Use this test page:

<script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js";></script>
<script>
goog.require('goog.Disposable');
</script>
<script>
goog.Disposable.MONITORING_MODE = goog.Disposable.MonitoringMode.INTERACTIVE;

MyObj = function() {
  goog.base(this);
}
goog.inherits(MyObj, goog.Disposable);

MyObjCreator = function() {}
MyObjCreator.prototype.Create = function() {
  return new MyObj();
}
var creator = new MyObjCreator();

// Not a leak.
var handle = creator.Create();

// Leak.
var handle2 = creator.Create();
handle2 = null;
</script>

2. Take a heap snapshot, check the retaining paths for the MyObj instances.

For the first instance, the retaining tree is sane:
handle in Window / file:///...
[1] in @13195 << this is goog.Disposable.instances_

For the second instance:
[2] in @13195
[8] in Array @13451
    d in function() @13469 << what's this?
    d in function() @13471
[0] in Array @13451
    d in function() @13469
    d in function() @13471

------

Do you need more information, e.g., a smaller repro case without Closure?


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to